当“new”运算符使用构造函数初始化内存时,JVM 会做什么?
2022-09-02 13:45:57
RealEstate v = new RealEstate();
我已将此关键字与 .我知道分配内存并使用类构造函数初始化内存。new
RealEstate()
new
RealEstate
JVM在这里做什么?
RealEstate v = new RealEstate();
我已将此关键字与 .我知道分配内存并使用类构造函数初始化内存。new
RealEstate()
new
RealEstate
JVM在这里做什么?
new
运算符实际上并不使用构造函数的帮助来分配内存。它与构造函数无关。基本上,Java的malloc
版本是新的
。
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 运算符还会调用对象构造函数。