1. 程式人生 > >Java學習心得之面向物件(二)

Java學習心得之面向物件(二)

 引用型別和基本型別有著巨大的區別,當宣告一個int  i=0時,系統會馬上給這個i分配一個記憶體空間(在棧記憶體裡面分配一小塊區域用來裝數字0),裡面裝著一個值為0,以後使用i這個名字馬上就可以訪問這個記憶體空間裡面的值,這就是基本資料型別,所以基礎型別就只佔一塊記憶體。基礎型別之外的型別全都叫引用型別,我們定義一個Mouse  m,這個m就是一個引用型別的資料。引用型別有什麼重要的特徵——引用型別佔2塊記憶體。我們定義好這個類之後,需要使用new關鍵字把這個類的物件例項化出來,也就是真真正正造出一個物件出來才能使用這個物件。

如何在記憶體中區分類和物件

  類是靜態的概念,是位於程式碼區裡面。物件是new出來的,它是位於堆記憶體,為什麼物件要位於堆記憶體?因為堆記憶體是用來動態分配記憶體的,只有在運行當中才會new一個物件放堆記憶體裡面,那這個物件到底有多大個,這個東西你不知道,你沒有辦法提前知道,所以你沒有辦法提前分配記憶體給這個物件,你只有在執行期間才能去分配它。什麼叫執行期間?敲JAVAC這個命令那是在編譯期間,編譯完成後再敲JAVA命令,那就是執行期間了。只有在執行期間,才能夠明白這個物件到底要分配多大的空間給它,所以把它放在堆記憶體裡面,堆記憶體比較大,動態分配記憶體用它。如果這個物件不用了,那它就是垃圾,那麼就等著垃圾收集器把它收集回去,釋放掉佔用的記憶體。

記住,以後一提到引用,腦子裡馬上浮現引用那就是一小塊記憶體指向一大塊記憶體。

四、物件的建立和使用



使用new關鍵字來建立一個新的物件。