【Java】从汇编码分析java对象的创建过程

源码:

class T {
	int m = 8;
}
T t = new T();

汇编码:

0 new #2 <T>
3 dup
4 invokespecial #3 <T.<init>>
7 astore_1
8 return
new #2

申请内存,在堆里面创建一个新对象。

半初始化,新建对象中的m值是0。

dup

复制操作,因为invokespecial会消耗一份引用,所以先复制一份

invokespecial

4 invokespecial #3 <T.>

init是调用它的构造方法。

此时对象中的m值是8。

astore_1

将符号和对象建立关联,即t和堆中的对象。

其实很简单,今天看一个视频说了半天。。。

发布了288 篇原创文章 · 获赞 13 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/LU_ZHAO/article/details/105190971
今日推荐