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

描述

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

类和对象代码

// 创建类
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

总结

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

posted @ 2018-12-06 11:07  王马扎  阅读(1306)  评论(0编辑  收藏  举报