简单分析创建对象时的内存分配
这节对Java中创建对象时的内存分配情况作个简单的分析。
先敲出测试代码:
//Application.java
package com.zctou.oop;
import com.zctou.oop.demo02.Pet;
public class Application {
public static void main(String[] args) {
Pet dog = new Pet();
dog.name = "旺才";
dog.age = 2;
dog.shout();
}
}
//Pet.java
package com.zctou.oop.demo02;
public class Pet {2岁的旺才 叫了一下!
public String name;
public int age;
public void shout() {
System.out.println(age +"岁的" + name + " 叫了一下!");
}
}
//输出:
2岁的旺才 叫了一下!
配图:
程序先在堆中加载 Application(包含main方法)类,然后在栈中存入 dog 变量。dog 要赋值 new Pet(),在堆中方法区内加载Pet类,然后在堆中创建Pet()对象,再把Application内的变量池赋值给 name和age。