Является ли встраивание Java все еще проблемой для большинства виртуальных машин Java?

В (теперь) относительно старой книге "Java Puzzlers" авторы рассказывают о проблемах с встраиванием, которые могут возникать в конечных статических полях (Puzzle 93: Class Warfare обсуждалась здесь).

По сути, в Java раньше была проблема, когда из-за загрузки классов вы могли столкнуться с тем, что если библиотечный класс (класс A) перекомпилируется с измененным статическим конечным полем, то класс (класс B), который использует это поле, может не работает должным образом. Это может произойти из-за того, что поле класса A могло быть встроено в класс B во время компиляции, поэтому при обновлении библиотеки класс B не включает изменения в поле класса A.

Мой простой вопрос... Это все еще проблема? Новые версии Java переопределяют процедуру загрузки классов, чтобы нам не приходилось беспокоиться о таких проблемах?

Я могу найти только относительно старые сообщения, затрагивающие эту проблему (до 2014 года), что заставляет меня думать, что эта проблема каким-то образом решена, но я не могу найти окончательного источника.

Кроме того, если это имеет какое-то значение, меня особенно интересует, будет ли это проблемой в Android.

0 ответов

Другие вопросы по тегам