解釋一下==號,他比較的是一個對象在內(nèi)存中的地址值,
比如2個字符串對象
String s1 = new String("str");
String s2 = new String("str");
如果用==號比較,會返回false,因為創(chuàng)建了兩個對象,他們在內(nèi)存中地址的位置是不一樣的.
equals的情況比較復(fù)雜,它是java.lang.Object類中的一個方法.因為java中所有的類都默認繼承于Object,所以所有的類都有這個方法.
在Object類源碼中是這樣寫的.
public boolean equals(Object obj) {
return (this == obj);
}
他同樣使用==號進行內(nèi)存地址的比較.但是許多java類中都重寫了這個方法,比如String.
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
String里的方法,如果==號比較不相等,還會進行一下值的比較.
所以equals方法具體的作用要看當(dāng)前的那個類是如何實現(xiàn)重寫父類中該方法的.如果沒有重寫該方法,那么他和==號等價.
equals和==的區(qū)別
equals和==的區(qū)別
==操作比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即棧中的內(nèi)容是否相同.
equals操作表示的兩個變量是否是對同一個對象的引用,即堆中的內(nèi)容是否相同.
(
“在堆中存儲的地址是否相同”和“堆中的內(nèi)容是否相同”有什么區(qū)別?總感覺是一個樣的阿.
)
==操作比較的是兩個變量的值是否相等,對于引用型變量表示的是兩個變量在堆中存儲的地址是否相同,即棧中的內(nèi)容是否相同.
equals操作表示的兩個變量是否是對同一個對象的引用,即堆中的內(nèi)容是否相同.
(
“在堆中存儲的地址是否相同”和“堆中的內(nèi)容是否相同”有什么區(qū)別?總感覺是一個樣的阿.
)
其他人氣:529 ℃時間:2020-05-17 11:13:54
優(yōu)質(zhì)解答
我來回答
類似推薦
- "=="和equals方法究竟有什么區(qū)別?
- 化干戈為玉帛中干戈玉帛的意思是什么?
- 光波快還是電波快
- 負八分之負五十四怎樣化簡
- 甲抽水機4分之3小時可抽水40立方米,乙抽水機5分之2小時可抽水25立方米.哪臺抽水機的效率高一些?
- 大通運輸公司計劃用20輛汽車裝運甲乙丙3種蔬菜共36噸到外地銷售.
- conducive 是幾級詞匯?詞義及背法?
- 把數(shù)量關(guān)系補充完整;故事書比科技書多三分之二.
- 阿基米德說:“給我一個支點,我能把地球翹起來”請問能用機械的知識分析他講的有道理嗎?能用宇宙的知識分析他的想法可行嗎?
- A,B兩地相距135千米,大汽車比小汽車早出發(fā)1/2小時,結(jié)果大汽車比小汽車早到1/8小時,大汽車每小時比小汽車少行駛5千米,求兩汽車速度
- 一只貓吃掉一條魚需要1分鐘.照這樣,100只貓同時吃掉100條魚需要幾分鐘?
- 文言狼子野心翻譯
猜你喜歡
- 1在裝有空氣的密閉容器中,欲用燃燒的方法除去其中的氧氣,又不增加其他氣體成分,可選用的可燃物是
- 217.夢想的力量 “我想讓非洲的每一個人都能喝上潔凈的水.”這句話有什么意義?
- 3公差不為零的等差數(shù)列{a}中,a3=3,且a2,a4,a8成等比數(shù)列.
- 4求作文 把花種在自己心里 不少于500字!
- 5用一個平面去截一個正方體,截面的形狀不可能是( ?。?A.梯形 B.五邊形 C.六邊形 D.七邊形
- 6“拉尼娜”現(xiàn)象會造成什么影響?
- 7影響天氣變化的因素有哪些?
- 8為什么(S/2V1+S/2V2 )-2S/(V1+V2)>0 S>V1>V2>0
- 9假如去年暑假,你和你父母一起去了杭州旅游,請你根據(jù)下面的提示,用英語寫一篇80詞左右的小短文.
- 10100分求助,弦長4.3米,5米,求弧長,
- 11這個世界上沒有人理所當(dāng)然對你好,如果有對你好的人,你就要加倍珍惜.這句話英文翻譯
- 12一個長方形相鄰兩邊分別增加它們的1/3和4/1,那么新的長方形面積比原來增加( )