В настоящее время я изучаю концепции памяти java, стека и кучи, я знаю, что локальные переменные и вызовы методов жили в месте, называемом стеком. и объекты жили внутри кучи. но что, если эта локальная переменная содержит объект? или имеет ссылку на объект?Java Где локальные переменные, ссылки на объекты, переменные экземпляра
public void Something(){
Duck d = new Duck(24);
}
Он все еще живет внутри стека? и где живут переменные экземпляра? пожалуйста, держите его как можно проще. Спасибо.
выделены внутри объекта, в котором они находятся? или как в соло в куче? – KyelJmD
Что делать, если объект создается как переменная экземпляра, он все равно попадает под анализ Escape? – KyelJmD
Макет объекта в памяти выглядит так: 8-байтовый заголовок, а затем атрибуты. Если переменная экземпляра является объектом, а не примитивом, тогда только указатель хранится в непрерывном блоке памяти, и объект может быть выделен в другом месте. – socha23