Много объяснений там, но сделать его еще проще. Возьмем, к примеру, List
. Можно реализовать список с помощью:
Построив интерфейс, скажем, List
. Вы только указываете на определение списка или что означает List
в действительности.
Вы можете использовать любой тип реализации, который внутренне говорит о реализации array
. Но предположим, что вы хотите изменить реализацию по какой-то причине, скажем, ошибку или производительность. Затем вам просто нужно изменить объявление List<String> ls = new ArrayList<String>()
на List<String> ls = new LinkedList<String>()
.
Нет, где еще в коде, вам придется что-то изменить; Потому что все остальное было построено на определении List
.
Единственный способ, с помощью которого я смог лично заставить его работать, - выполнить запрос в самой БД следующим образом:
conn.createStatement().execute("PRAGMA locking_mode = EXCLUSIVE");