JVM拾遗(4): Java对象的创建及内存布局
上一节JVM拾遗-3-类装载机制讲了JVM如何将类装载到虚拟机以供后续使用 那么JVM是如何创建类的实例呢?该对象是如何分配内存的?
1. 实例化
1.1 创建对象的方式
Java对象的创建, 有多种方式,最简单就是new XXClass
, 还可以通过反射
,xx.clone()
,反序列化
以及黑科技Unsafe.allocateInstance
等方法.
new
和反射创建对象实例的时候,会初始化实例字段.
如果类没有构造器,会默认添加构造器,并且编译成<init>
方法.
默认生成的构造器里,如果父类有无参构造器, 会隐式递归调用父类的构造器.