Между тем в стране по прежнему разрабатывается множество АС, не ориентированных на персонал, а не на потребителей. И именно для их реализации зачастую ГОСТ 34 и применяется.
Ну это как посмотреть. Скорее, они добавили альтернативу. К тому же, что полезно для поиска групп в простые подземелья, то вовсе не полезно для сложных рейдов — их просто не пройти таким макаром, даже с баффами от системы поиска подземелий. Там рулят сыгранные команды.
Причем в этом коде оба присвоения будут в конструкторе. Но по факту срабатывать будет только последнее. Каким образом компилятор вымарывает первое срабатывание — большой вопрос.
И еще огромный вопрос вот в чем — а не может ли такого быть, что переменная объявляется фактически не финальной? Или финальная переменная действительно каким-то образом переписывается (хотя в JSR 133 это вроде невозможно)
То есть, могу ли я, имея несколько потоков, ухитриться получить одним из потоков первое значение вместо второго?
Ну, например потому, что я являюсь как раз разработчиком платформы, в которой описанное в статье реализовано чуть менее чем полностью, и еще многое другое. И многие заказчики прикладных решений на нашей платформе желают другую базу данных — например, потому, что у них имеются обученные админы. Что дает нам упущенную выгоду, к сожалению. И заставляет нас двигаться по тернистому пути громождения абстракций и поддержки реализаций.
У такого подхода есть один существенный минус — подходит только для standalone-приложений, разработанных с нуля. Если вы разрабатываете софт на какой-либо платформе, включающей ORM, а тем паче саму такую платформу, то вы будете прибиты гвоздями к выбранной СУБД, либо будете вынуждены громоздить дополнительные слои абстракций, и поддерживать несколько реализаций.
Все дело в том, что реализация описанных (и безусловно полезных) механизмов значительно отличается для разных СУБД.
И еще огромный вопрос вот в чем — а не может ли такого быть, что переменная объявляется фактически не финальной? Или финальная переменная действительно каким-то образом переписывается (хотя в JSR 133 это вроде невозможно)
То есть, могу ли я, имея несколько потоков, ухитриться получить одним из потоков первое значение вместо второго?
Результат:
init_start
assign1
init_end
assign2
constructor
2
Даже еще интереснее!
Не компилируется!
Все дело в том, что реализация описанных (и безусловно полезных) механизмов значительно отличается для разных СУБД.