Как объекты, созданные в java-пространстве кучи, имеют глобальный доступ?

62
3

Онлайн-курс и другие веб-сайты неоднократно говорят, что объекты, созданные в кучном пространстве, имеют глобальный доступ. Этот глобальный доступ означает, что объект может быть доступен из любой точки программы до того, как он будет уничтожен сборщиком мусора? Если это так, добавьте короткий код, показывающий это.

Источник:

Курс: YouTube "Любой объект, созданный в кучном пространстве, имеет глобальный доступ и может ссылаться из любого места приложения". JournalDev

спросил(а) 2021-01-25T11:49:02+03:00 4 месяца, 3 недели назад
1
Решение
77

Это просто означает, что объекты, которые на самом деле находятся в кучном пространстве, могут быть доступны любым потоком из любой точки программы. То есть, если данный поток знает, где объект находится в куче.

Тогда есть стек памяти, который для всех практических целей вы могли бы рассмотреть локальную память для методов. Ссылки на объекты в куче и примитивных значениях хранятся в памяти стека. Если поток A создает ссылку на объект OBJ, другой поток B не может получить доступ к этой ссылке, если поток A не разделяет (копирует) его с B.

Тем не менее, поток B может также создать его собственную локальную ссылку на объект.

Это слишком упрощенный ответ, однако правильный ответ не подходит для формата форума Stack Overflow. К счастью, есть много ресурсов, которые подробно описывают модель памяти Java.

Поэтому, пожалуйста, прочитайте этот учебник, я не думаю, что его можно объяснить намного лучше, чем здесь: модель памяти

ответил(а) 2021-01-25T11:49:02+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема