java 物件的理解

2021-07-23 20:31:31 字數 1429 閱讀 2100

在jdk1.5的環境下,有如下4條語句:

integer i01 = 59;

int i02 = 59;

integer i03 =integer.valueof(59);

integer i04 = new integer(59)。

以下輸出結果為false的是:

a:system.out.println(i01== i02);
b:system.out.println(i01== i03);
c:system.out.println(i03== i04);
d:system.out.println(i02== i04);
integer i01=59

的時候,會呼叫

integer

的valueof

方法:

public static integer valueof(int i)
這個方法就是返回乙個 integer 物件,只是在返回之前,看作了乙個判斷,判斷當前 i 的值是否在 [-128,127] 區別,且 integercache 中是否存在此物件,如果存在,則直接返回引用,否則,建立乙個新的物件。

在這裡的話,因為程式初次執行,沒有 59 ,所以,直接建立了乙個新的物件。

int i02=59

,這是乙個基本型別,儲存在棧中。

integer i03 =integer.valueof(59);

因為integercache

中已經存在此物件,所以,直接返回引用。

integer i04 = 

newinteger(59)

;直接建立乙個新的物件。

system.

out.println(i01== i02); i01

是integer

物件,i02

是int

,這裡比較的不是位址,而是值。

integer

會自動拆箱成

int,然後進行值的比較。所以,為真。

system. out

.println(i01== i03); 因為 i03 返回的是 i01 的引用,所以,為真。

system. out

.println(i03==i04); 因為 i04 是重新建立的物件,所以 i03,i04 是指向不同的物件,因此比較結果為假。

system. out

.println(i02== i04); 因為 i02 是基本型別,所以此時 i04 會自動拆箱,進行值比較,所以,結果為真。

JAVA怎樣理解物件導向

一 物件的解釋 現實世界中,隨處可見的一種事物就是物件,物件是事物存在的實體,如人類 書桌 計算機 高樓大廈等。人類解決問題的方式總是將複雜的事物簡單化,於是就會思考這些物件都是由哪些部分組成的。通常都會將物件劃分為兩個部分,即動態部分與靜態部分。靜態部分,顧名思義就是不能動的部分,這個部分被稱為 ...

Java筆記 7物件導向的理解

類是對公共屬性和行為的抽取。物件是類的例項化。萬物皆物件。乙個類可以建立無數個物件。比如 貓是乙個類,有出生地點 年齡 尾巴長度 顏色 性格 主人是誰等屬性。那麼小明養的貓 具體到某乙隻 就是乙個物件,它出生再小明家 年齡2歲 尾巴15cm 顏色是白色 性格溫順 主人是小明,這些屬性是確定的。其他同...

我對Java物件導向理解 0000

面向過程,就是典型的c語言這種,乙個main函式,從頭走到腳,中間可能涉及到一些方法的呼叫,但是整個 完全是流水線一樣。這樣就會導致乙個問題,雖然 流程很清晰,但是不容易擴充套件,我需要修改某乙個計算過程,有可能導致全部 需要重寫。而物件導向,就是以一種物件的角度來編寫程式,設計程式,每個物件具有自...