Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Выделение памяти в Java

#java


Помогите разобраться, что происходит во время выполнения этих строк:

1. String str;
2. str = new String("Hi");


Во время выполнения первой строки происходит создание ссылки str в стеке. А во время
выполнения второй выделение памяти в heap и связывание этого участка с ссылкой в стеке. Так?

И как это работает с составними типами? Например:

class Temp{
    String str1;
    String str2;
}

1. Temp temp;
2. temp = new Temp();


Во время выполнения первой строчки в стеке создастся не только ссылка temp но и ссылки
str1, str2
    


Ответы

Ответ 1



Да, все правильно. Но перед созданием объекта, все его поля должны быть инициализированы. Для этого создается конструктор класса в котором необходимо выделить память в куче, для всех его полей

Комментариев нет:

Отправить комментарий