RealEstate v = new RealEstate();
我已将此new
关键字与RealEstate()
一起使用。我知道new
使用RealEstate
类构造函数分配内存并初始化内存。
JVM在这做什么?
答案 0 :(得分:14)
new
运算符实际上并没有使用构造函数的帮助来分配内存。它与构造函数无关。 Basically Java's version of malloc
is new
.
new
运营商:
构造函数单独执行以在初始化期间执行任何操作,例如将值分配给对象和变量。如果没有定义构造函数,则编译器将创建默认构造函数并将分配默认值:
下表总结了几种数据类型的默认值。 source
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
运算符仅分配内存并返回对该内存的引用。
请参阅documentation:
new运算符通过为新对象分配内存并返回对该内存的引用来实例化一个类。 new运算符还调用对象构造函数。