繁体   English   中英

当'new'运算符使用构造函数初始化内存时,JVM会做什么?

[英]What does the JVM do when 'new' operator initializes the memory using the constructor?

RealEstate v = new RealEstate();

我在RealEstate()使用了这个new关键字。 我知道new分配内存并使用RealEstate类构造函数初始化内存。

JVM在这做什么?

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运算符还调用对象构造函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM