В языке программирования Java всё является объектом, исключение составляют примитивы. Контейнером для примитивов являются переменные примитивных типов, с этим особых вопросов у меня не возникает. А теперь мне хотелось бы перейти к сути. Чем же является содержимое переменных ссылочных типов данных? Насколько мне известно, то переменные ссылочных типов просто хранят адреса объектов в памяти. Что же представляет собой сам адрес? Очевидно, что это не объект. Корректно ли в таком случае утверждение о том, что адреса, которые хранятся в ссылочных переменных также являются примитивами? Или же это что-то иное? Меня интересует именно вопрос класификации.
Это вопрос терминологии. Да, фактически адреса являются примитивами. Но в спецификации примитивы и ссылки строго разделены, потому что примитивность ссылок проявляется лишь при чтении/записи в память, а при любых осмысленных операциях используется информация, хранящаяся в куче и доступная по этим ссылкам, а не в самих значениях, как у настоящих примитивов.
В спецификации Java не содержит конкретной информации о данных, хранящихся в ссылке. Во многих JVM ссылка реализована исключительно как указатель и занимает 32 бита в 32-битных JVM и 64 бита — в 64-битных. Тем не менее, существуют реализации JVM (например, Zing Virtual Machine от Azul), в целях оптимизации помещающие в ссылку также информацию о типе данных. Другие (непример, Java HotSpot Virtual Machine), наоборот, используют технологию «Compressed Oops», позволяющую использовать ссылки размером в 32 бита на 64-битных операционных системах.
Подробнее: http://cyclowiki.org/wiki/%D0%A1%D1%81%D1%8B%D0%BB%D0%BA%D0%B0_(Java)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
JVM транслирует или интерпретирует байт-код в машинный код, который откомпилировал компилятор javac?
Не удается никак собрать исполняемый жарникСобираю проект как и через project structure - artifact - jar так и через javafx application
Есть подозрение, что в приложении происходит фрагментация кучиJVM запускается с параметрами -Xms1g -Xmx2g
Имеется игра для андроида написанная на JavaЕсть рабочий порт для винды и линукса