一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看

java語(yǔ)言

Java中對象和引用的具體區別

時(shí)間:2025-03-31 09:40:59 java語(yǔ)言 我要投稿
  • 相關(guān)推薦

Java中對象和引用的具體區別

  初學(xué)Java的人,可能在在很長(cháng)一段時(shí)間里,對對象和引用的基本概念都是很模糊的,老是分不清楚兩者的區別。下面,應屆畢業(yè)生小編給你整理一些有關(guān)對象和引用的區別供有需要的人參考。

  一、對象與引用的概念

  首先小編先解釋一條代碼更你更快的了解對象和引用的概念區別。

  Vehicle veh1 = new Vehicle();

  通常把這條語(yǔ)句的動(dòng)作稱(chēng)之為創(chuàng )建一個(gè)對象,其實(shí),它包含了三個(gè)動(dòng)作。

  1)右邊的“new Vehicle()”,即新建對象本身;

  2)左邊的“Vehicle veh1”創(chuàng )建了一個(gè)Vehicle類(lèi)的引用變量或稱(chēng)對象引用變量。

  所謂Vehicle類(lèi)引用,就是以后可以用來(lái)指向Vehicle對象的對象引用。

  3)“=”操作符使對象引用指向剛創(chuàng )建的那個(gè)Vehicle對象。

  我們可以把這條語(yǔ)句拆成兩部分:

  Vehicle veh1;

  veh1 = new Vehicle();

  效果是一樣的。這樣寫(xiě),就比較清楚了,有兩個(gè)實(shí)體:一是對象引用變量,一是對象本身。

  可以這么說(shuō),在Java里都是通過(guò)引用來(lái)操縱對象的。 這就是兩者的區別。

  二、對象和引用的具體區別

  相互關(guān)聯(lián)體現在:

  1)當對象的引用變量指向對象時(shí),他們兩就聯(lián)系起來(lái),改變引用的屬性,就會(huì )改變對象的屬性;

  2)如果同一個(gè)對象被多個(gè)引用變量引用的話(huà),則這些引用變量將共同影響這個(gè)對象本身。

  相互獨立體現在:

  3)一個(gè)對象可以被不同的引用變量操縱,同時(shí)一個(gè)引用變量也可以指向不同的對象,但是同一時(shí)刻只能指向一個(gè)對象;

  4)從存儲空間上來(lái)說(shuō),對象和引用也是獨立的,對象一般存儲在堆中,而引用存儲在堆棧(存儲速度更快)中。

  三、小編舉例

  為了加深大家的理解,小編再舉一個(gè)例子具體說(shuō)明一下兩者的區別。

  class Vehicle {

  int passengers;

  int fuelcap;

  int mpg;

  }

  有了這個(gè)模板,就可以用它來(lái)創(chuàng )建對象,Vehicle veh1 = new Vehicle();

  通常把這條語(yǔ)句的動(dòng)作稱(chēng)之為創(chuàng )建一個(gè)對象,其實(shí),它包含了四個(gè)動(dòng)作。

  1)右邊的“new Vehicle”,是以Vehicle類(lèi)為模板,在堆空間里創(chuàng )建一個(gè)Vehicle類(lèi)對象(也簡(jiǎn)稱(chēng)為Vehicle對象)。

  2)末尾的()意味著(zhù),在對象創(chuàng )建后,立即調用Vehicle類(lèi)的構造函數,對剛生成的對象進(jìn)行初始化。構造函數是肯定有的。如果你沒(méi)寫(xiě),Java會(huì )給你補上一個(gè)默認的構造函數。

  3)左邊的“Vehicle veh1”創(chuàng )建了一個(gè)Vehicle類(lèi)引用變量。所謂Vehicle類(lèi)引用,就是以后可以用來(lái)指向Vehicle對象的對象引用。

  4)“=”操作符使對象引用指向剛創(chuàng )建的那個(gè)Vehicle對象。

  我們可以把這條語(yǔ)句拆成兩部分:

  Vehicle veh1;

  veh1 = new Vehicle();

  效果是一樣的。這樣寫(xiě),就比較清楚了,有兩個(gè)實(shí)體:一是對象引用變量,一是對象本身。


【Java中對象和引用的具體區別】相關(guān)文章:

Java中的對象與引用知識詳解05-03

Java中的堆和棧的區別05-23

java中String和StringBuffer的區別08-01

Java中hashmap和hashtable的區別06-20

java中length和length()的區別04-18

淺談Java中的弱引用05-05

關(guān)于java中堆和棧的區別01-13

java中i++和++i的區別03-13

淺談理解Java中的弱引用07-22

一级日韩免费大片,亚洲一区二区三区高清,性欧美乱妇高清come,久久婷婷国产麻豆91天堂,亚洲av无码a片在线观看