华南俳烁实业有限公司

java

當前位置:中華考試網(wǎng) >> java >> java基礎(chǔ) >> 文章內(nèi)容

equals和==的區(qū)別是什么?

來源:中華考試網(wǎng)  [2020年11月14日]  【

  什么是==?

  == 等于比較運算符,如果進行比較的兩個操作數(shù)都是數(shù)值類型,即使他們的數(shù)據(jù)類型不相同,只要他們的值相等,也都將返回true.如果兩個操作數(shù)都是引用類型,那么只有當兩個引用變量的類型具有父子關(guān)系時才可以比較,而且這兩個引用必須指向同一個對象,才會返回true。(在這里我們可以理解成==比較的是兩個變量的內(nèi)存地址)

  什么是equals()?

  equals()方法是Object類的方法,在Object類中的equals()方法體內(nèi)實際上返回的就是使用==進行比較的結(jié)果.但是我們知道所有的類都繼承Object,而且Object中的equals()方法沒有使用final關(guān)鍵字修飾,那么當我們使用equal()方法進行比較的時候,我們需要關(guān)注的就是這個類有沒有重寫Object中的equals()方法.

  填寫下面表單即可預約申請免費試聽java課程!害怕學不會?助教全程陪讀,隨時解惑!擔心就業(yè)?一地學習,可全國推薦就業(yè)!

預約申請免費聽java課程

  • 地區(qū):
  • 姓名:
  • 手機:

  區(qū)別

  == 是java提供的等于比較運算符,用來比較兩個變量指向的內(nèi)存地址是否相同。而equals()是Object提供的一個方法。Object中equals()方法的默認實現(xiàn)就是返回兩個對象==的比較結(jié)果。但是equals()可以被重寫,所以我們在具體使用的時候需要關(guān)注equals()方法有沒有被重寫。

  結(jié)論:

  賦值方式中如果調(diào)用了new關(guān)鍵字,一定會在內(nèi)存中給你分配一個新的地址。

  給Integer類型賦值的時候,如果沒有調(diào)用new關(guān)鍵字,并且值在-128與+127之間,包括-128和+127,那么指向的都是同一個內(nèi)存位置。

  Integer類中重寫了equals()方法,使用equals()方法進行比較的時候,實際上比較的內(nèi)存中最終指向的值的內(nèi)存位置,不是直接比較變量的內(nèi)存位置。

責編:fushihao

上一篇:Java基礎(chǔ)教程之JVM運行時內(nèi)存

下一篇: 沒有了

  • 會計考試
  • 建筑工程
  • 職業(yè)資格
  • 醫(yī)藥考試
  • 外語考試
  • 學歷考試
盘山县| 永城市| 普兰店市| 日照市| 抚远县| 砀山县| 焉耆| 增城市| 鄄城县| 含山县| 黑水县| 河西区| 云和县| 夏河县| 尼勒克县| 连城县| 老河口市| 灵丘县| 云和县| 成都市| 双牌县| 桃园县| 买车| 三都| 丹寨县| 疏勒县| 长寿区| 遂平县| 即墨市| 井冈山市| 梁河县| 郸城县| 广宗县| 贵南县| 绥中县| 安西县| 太谷县| 齐河县| 来凤县| 师宗县| 密云县|