динамическое выделение памяти Java?

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

Также объясните, что происходит, когда Вы делаете ClassA object = new ClassA(); в "куче" и стеке.

6
задан roottraveller 12 September 2017 в 08:23
поделиться

2 ответа

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

Обратите также внимание на то, что вы знаете, сколько памяти требуется этому объекту, но не знаете, сколько элементов этого объекта требуется . Это можно определить только во время выполнения (например, массив переменного размера).

5
ответ дан 8 December 2019 в 17:20
поделиться

Все Java-объекты выделяются динамически. Вы всегда передаете им ссылки. Так устроен язык. Когда вы это сделаете:

ClassA obj = new ClassA();

Затем объект выделяется в куче, и ссылка на него сохраняется в стеке (конечно, при условии, что это внутри метода). Это означает, что вы всегда можете передавать объекты, не беспокоясь о том, где они хранятся.

9
ответ дан 8 December 2019 в 17:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: