Как GC находит корни GC и другие ссылки на объектыJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как GC находит корни GC и другие ссылки на объекты

Сообщение Anonymous »

В соответствии с этой статьей «Как работает сбор мусора» существует четыре типа корней Gc:
  • Локальные переменные поддерживаются стек потока. Это не виртуальная ссылка на реальный объект и поэтому она не видна. По
    во всех смыслах и целях локальные переменные являются корнями GC.
  • Активные потоки Java всегда считаются живыми объектами и, следовательно, являются корнями GC. Это особенно важно для локальных

    переменных потока.
  • На статические переменные ссылаются их классы. Этот факт делает их де-факто корнями GC. Сами классы могут быть подвергнуты сборке мусора, что приведет к удалению всех статических переменных, на которые ссылаются. Это имеет особое значение, когда мы используем серверы приложений, контейнеры OSGi или загрузчики классов в целом. Мы обсудим связанные проблемы в разделе «Модели проблем».
  • Ссылки JNI — это объекты Java, созданные собственным кодом как часть вызова JNI. Созданные таким образом объекты обрабатываются особым образом, поскольку JVM не знает, ссылается ли на них собственный код или нет. Такие объекты представляют собой особую форму корня сборщика мусора, которую мы рассмотрим более подробно в разделе «Модели проблем» ниже.
В спецификации JVM локальные переменные в кадрах стека не имеют типа, и это просто массив байтов, и компилятор несет ответственность за создание инструкций конкретного типа для этих локальных переменных, например iload, fload, aload и т. д. Так ясно GC не может найти ссылки на объект просматривая только раздел локальных переменных в кадрах стека.
Мои вопросы:
  • Как GC вообще находит эти корни?
  • Как GC может найти в стеке локальные переменные, которые являются ссылками на
    объект, а не другими тип переменных (например, переменные, сохраненные в iconst)?
  • Тогда как Gc находит поля этих объектов для создания доступного
    дерева?
  • Так ли это? использовать инструкции, определенные самой JVM, для поиска этих
    объектов?
  • И, наконец, каково значение этого предложения в статью?
Это не виртуальная ссылка на реальный объект и поэтому она не видна


Подробнее здесь: https://stackoverflow.com/questions/648 ... references
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»