2020
09-25
09-25
从汇编码分析java对象的创建过程(推荐)
源码:classT{intm=8;}Tt=newT();汇编码:0new#2<T>3dup4invokespecial#3<T.<init>>7astore_18returnnew#2申请内存,在堆里面创建一个新对象。半初始化,新建对象中的m值是0。dup复制操作,因为invokespecial会消耗一份引用,所以先复制一份invokespecial4invokespecial#3<T.>init是调用它的构造方法。此时对象中的m值是8。astore_1将符号和对象建立关联,即t和堆中的对象。其实很简单,今天看一个视频说了...
继续阅读 >