java 实例化一个类时在堆和栈中保存了哪些数据

定义一个类:

public class A{
	public int i=1;
    public static void mian(String args[]){
      A a=new A();
    }

java 实例化一个类时在堆和栈中保存了哪些数据_第1张图片
1.加载class文件到class内容区域,加载静态方法和静态变量到静态区(同时加载的)
2.调用main方法到栈内存
3.在栈内存中为a变量(A对象的引用)开辟空间
4.在堆内存为A对象申请空间
5.给成员变量进行默认初始化(此时 i=0),同时有一个方法标记,在方法区中创建一个A的方法区,将A的方法区的地址0x01给方法标记
6.给成员变量进行显示初始化(此时 i=1)
7.将A对象的地址值给变量a

你可能感兴趣的:(Java基础)