1 public class Test {2 public static void main(String[] args) {3 Human aPerson = new Human(122); 4 }5 6 }7 class Human{8 /*constructor*/9 public Human(int h){10 this.height = h;11 }12 /*accessor */13 public int GetHeight(){14 return this.height;15 }16 /*mutator */17 public void GrowHeight(int h){18 this.height+= h;19 }20 PRivate int height;21 }View Code
aPerson 為對象引用reference存在內存的棧中。
But!!!
在 java中,所有的(普通)對象都儲存在堆上。因此,new關鍵字的完整含義是,在堆上創建對象。
基本類型(primitive type)的對象,比如int, double,保存在棧上。當我們聲明基本類型時,不需要new。一旦聲明,Java將在棧上直接存儲基本類型的數據。所以,基本類型的變量名表示的是數據本身,不是引用。
引用賦值:
當我們將一個引用賦值給另一個引用時,我們實際上復制的是對象的地址。兩個引用將指向同一對象。比如dummyPerson=aPerson;,將導致:
新聞熱點
疑難解答