Что делает JVM, когда оператор 'new' инициализирует память с помощью конструктора?

java constructor new-operator

310 просмотра

1 ответ

RealEstate v = new RealEstate();

Я использовал это newключевое слово с RealEstate(). Я знаю, newвыделяет память и инициализирует память, используя RealEstateконструктор класса.

Что здесь делает JVM?

Автор: Shahab Khan Источник Размещён: 08.11.2019 11:26

Ответы (1)


14 плюса

Решение

newОператор на самом деле не использует помощь конструктора для выделения памяти. Это не имеет ничего общего с конструктором. В основном версия Java mallocесть new.

new оператор:

  • выделяет память для объекта
  • вызывает конструктор объекта
  • возвращает ссылку на эту память

Конструктор выполняется отдельно для выполнения любых операций во время инициализации, таких как распределение значений для объектов и переменных. Если конструктор не определен, то компилятор создаст конструктор по умолчанию и выделит значения по умолчанию:


В следующей таблице приведены значения по умолчанию для нескольких типов данных. источник

Data Type   Default Value (for fields)
byte            0
short           0
int             0
long            0L
float           0.0f
double          0.0d
char            '\u0000'
String          null
any object      null
boolean         false

Таким образом, newоператор только выделяет память и возвращает ссылку на эту память.

Смотрите документацию :

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

Автор: Raman Sahasi Размещён: 20.08.2016 02:39
Вопросы из категории :
32x32