面试七连问,考验你jvm功底的时刻!--持续更新中

一、解释一下对象的创建过程

1、先申请一块内存区域,对内存区的变量赋以 默认值(半初始化)
2、将new出的对象名称 指向 半初始化的对象。

例:
public class Test{
int m = 9;

public static void main (String [] args){
Test t = new test();
}
}

编译后的这段代码的字节码文件会生成5条指令:
0 new #2
3 dup
4 invokespecial #3 <T >
7 astore_1
8 return

0(申请内存,在内存区域里new了新对象,设初始值进行半初始化)
3(复制一份,不重要)
4 inti(初始化调用构造方法,将9赋值给 m)
7 把 test与新new出的对象关联

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页