【Java】从汇编码分析java对象的创建过程
2020-06-04 08:26
239 查看
转载自:https://blog.csdn.net/LU_ZHAO/article/details/105190971
源码:
class T {
int m = 8;
}
T t = new T();
1
2
3
4
汇编码:
0 new #2
3 dup
4 invokespecial #3 <T.>
7 astore_1
8 return
1
2
3
4
5
new #2
申请内存,在堆里面创建一个新对象。
半初始化,新建对象中的m值是0。
dup
复制操作,因为invokespecial会消耗一份引用,所以先复制一份
invokespecial
4 invokespecial #3 <T.>
init是调用它的构造方法。
此时对象中的m值是8。
astore_1
将符号和对象建立关联,即t和堆中的对象。
相关文章推荐
- JVM源码分析之Java对象的创建过程
- Java对象创建过程和内存结构分析
- java引用对象和创建对象过程分析
- 从汇编码分析java对象的创建过程(推荐)
- Java中对象的创建过程(内存分析)
- JVM源码分析之Java对象的创建过程
- JAVA中对象创建和初始化过程
- java对象创建过程
- Dalvik虚拟机Java堆创建过程分析
- Java:对象创建和初始化过程
- Android应用程序窗口(Activity)的窗口对象(Window)的创建过程分析
- Java:对象创建和初始化过程
- Java对象创建过程
- java对象的创建过程(摘自《java编程思想》)
- 举例分析Java对象的初始化过程
- java对象创建过程/初始化顺序
- 黑马程序员-java内存结构和对象创建的过程
- Dalvik虚拟机Java堆创建过程分析
- java --- 对象的创建过程
- JAVA 对象创建过程