代碼說明:
一.當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'; }
棧:對象的引用、局部變量
堆:對象、全局變量
方法區:類信息對象