代码说明:
一.当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'; }
栈:对象的引用、局部变量
堆:对象、全局变量
方法区:类信息对象