[Java]Java类和对象内存分配详解

描述

代码说明:
一.当Person p1 = new Person();第一次被调用时须要作两件事:
1.先判断类加载器是否加载过Person类,若是没有则加载到Person类型到方法区
2.在堆中开辟内存空间,在栈中对象名引用(指向)堆的相应内存空间
二. p1.name = '皓皓': 将堆中name赋值为‘皓皓’;
三. Person p2 = new Person(): 此时方法区中已经存在Person类,因此不须要再次加载
四. p2.name = 'john'; 将堆中name赋值为‘john’;code

类和对象代码

// 建立类
public class Person{
    // 编写属性
    String name;
    int age;
    doubel height;
    // 编写方法
    public void eat(){

    }
} 


// 类的实例化
public static void main(String[] args) {
    Person p1 = new Person();
    p1.name = '皓皓':
    Person p2 = new Person():
    p2.name = 'john';
}

类和对象内存分配详解图

image

总结

栈:对象的引用、局部变量
堆:对象、全局变量
方法区:类信息对象

相关文章
相关标签/搜索