1、前言
在java學習中,理解對象以及對象的引用是萬里長征的第一步。可是,如今大量的java學習書籍都將對象以及對象的引用混爲一談,然而實際上它們有着本質的區別。爲了幫助更多的java學者更好的理解,我將本身的學習理解記錄下來。若有理解不全或者錯誤的地方,歡迎你們批評指正。
2、分析對象引用與對象的區別
爲了接下來進行更好的分析,我先創建一個Demo類,用於後面的分析。
- }
public class Demo{ //默認構造方法 public Demo{ }
接下來,咱們用Demo類來建立一個對象。
這一條語句,其實包括了四個動做:
1)右邊的「new Demo」,是以Demo類爲模板,在堆空間裏建立一個Demo對象。
2)末尾的()意味着,在對象建立後,當即調用Demo類的構造函數,對剛生成的對象進行初始化。
3)左邊的「Demo demo」建立了一個Demo類引用變量,它存放在棧空間中。也就是用來指向Demo對象的對象引用。
4)「=」操做符使對象引用指向剛建立的那個Demo對象。
固然這條語句咱們也能夠寫成:
Demo demo;//建立對象引用
demo=/*將對象引用指向對象*/new Demo();//建立對象
3、對象引用與對象之間的關係
1)從對象引用出發:
一個對象引用能夠指向一個對象
Demo demo;//一個對象引用 demo=new Demo();//一個對象引用指向一個對象
也能夠不指向對象。
Demo demo;//建立對象引用,可是沒有指向對象