Какая именно ошибка возникает, когда Java обращается к неинициализированному объекту? ⇐ JAVA
-
Anonymous
Какая именно ошибка возникает, когда Java обращается к неинициализированному объекту?
В шаблоне Singleton с использованием DCL в поле объекта экземпляра добавляется ключевое слово voluty, и все статьи по этому поводу описываются как «предотвращение переупорядочения инструкций, которое в противном случае привело бы к доступу к неинициализированному полностью созданному объекту экземпляра», что приводит к проблемы.
В чем именно здесь проблема
В чем будет проблема, если метод вызывается с использованием этого неинициализированного полного объекта и выдает NPE?
Если осуществляется доступ к полю неинициализированного объекта, выдается ли он NPE или просто поле имеет нулевое значение?
Этот сценарий практически невозможно воспроизвести в многопоточном режиме, но я не могу найти о нем никакой информации.
В шаблоне Singleton с использованием DCL в поле объекта экземпляра добавляется ключевое слово voluty, и все статьи по этому поводу описываются как «предотвращение переупорядочения инструкций, которое в противном случае привело бы к доступу к неинициализированному полностью созданному объекту экземпляра», что приводит к проблемы.
В чем именно здесь проблема
В чем будет проблема, если метод вызывается с использованием этого неинициализированного полного объекта и выдает NPE?
Если осуществляется доступ к полю неинициализированного объекта, выдается ли он NPE или просто поле имеет нулевое значение?
Этот сценарий практически невозможно воспроизвести в многопоточном режиме, но я не могу найти о нем никакой информации.
Мобильная версия