创建对象内存分析
- 一个Application类和一个Pet类
Application.java
public class Application {
public static void main(String[] args) {
Pet pet = new Pet();
pet.name = "旺财";
pet.age = 3;
pet.shout();
}
}
Pet.java
public class Pet {
public String name;
public int age;
public void shout(){
System.out.println(name+"叫");
}
}
- Application类首先加载在方法区中,其中有main方法和常量池中有“旺财”等。
-
执行main方法的时候进入到栈中
-
声明Pet变量的时候方法区加载Pet类
-
new的时候栈生成pet变量的名字,堆中生成pet实体
- 执行第二第三条语句的时候修改堆中的对应属性
- 所有带有static的存放在静态方法区中,和类一起加载。
让我们一起变得更强