简单分析创建对象时的内存分配

这节对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岁的旺才 叫了一下!

配图:

Java面向对象编程06 - 创建对象内存分析

程序先在堆中加载 Application(包含main方法)类,然后在栈中存入 dog 变量。

dog 要赋值 new Pet(),在堆中方法区内加载Pet类,然后在堆中创建Pet()对象,再把Application内的变量池赋值给 name和age。