欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解 Java 中 equals 和 == 的區(qū)別

 更新時間:2017年03月08日 10:43:27   投稿:lqh  
這篇文章主要介紹了詳解 Java 中 equals 和 == 的區(qū)別的相關(guān)資料,equals 和 == 都是用來檢測兩個字符串是否相等,返回值也都是布爾型,但是兩者在內(nèi)部比較的處理中卻不盡相同需要的朋友可以參考下

詳解 Java 中 equals 和 == 的區(qū)別

1 前言

  在 Java 語言中,equals 和 == 都是用來檢測兩個字符串是否相等,返回值也都是布爾型(boolean),但是兩者在內(nèi)部比較的處理中卻不盡相同,因此在需要檢測兩個字符串是否相等的時候,我們一定要特別的注意,選擇適當(dāng)?shù)臋z測方式,防止造成不必要的 bug。從表面上來看,這種 bug 很像隨機產(chǎn)生的間歇性錯誤。

2 區(qū)別

  在需要檢測兩個字符串是否相等的時候,我們可以使用 equals 方法。對于表達(dá)式:

s.equals(t)

  如果字符串 s 與字符串 t 相等,則返回 true;否則,返回 false。需要注意的是,s 與 t 可以是字符串常量也可以是字符串變量。例如,下面的表達(dá)式就是合法的:

"Hello".equals(greating)

  更進(jìn)一步,如果想要檢測兩個字符串是否相等,而不區(qū)分大小寫,可以使用 equalsIgnoreCase 方法。例如,下面的表達(dá)式的值就是 true:

"Hello".equals("hello")

  在此,一定不能用 == 運算符來檢測兩個字符串是否相等!因為恒等運算符只能夠確定兩個字符串是否放置在同一個位置上。當(dāng)然,如果兩個字符串放置在同一個位置上,它們必然相等。但是,完全有可能將內(nèi)容相同的多個字符串的拷貝位置放置在不同的位置上。

  如果虛擬機始終將相同的字符串共享,就可以使用 == 運算符來檢測兩個字符串是否相等。但實際上,只有字符串常量是共享的,而 + 和 substring 等操作產(chǎn)生的結(jié)果并不是共享的。

3 示例

/**
 * @author 維C果糖
 * @create 2017-02-14
 */

public class equalsAndHD {
  public static void main(String[] args) {
    String greating = "Hello";

    if (greating.equals("Hello")){
      System.out.println("1,通過 equals 輸出的結(jié)果為:greating 與 Hello 的值相等!");
    }else {
      System.out.println("1,通過 equals 輸出的結(jié)果為:greating 與 Hello 的值不相等!");
    }

    if ((greating.substring(0,2) + "llo") == "Hello"){
      System.out.println("2,通過 == 輸出的結(jié)果為:greating 與 Hello 的值相等!");
    }else {
      System.out.println("2,通過 == 輸出的結(jié)果為:greating 與 Hello 的值不相等!");
    }
  }
}

運行以上程序后,結(jié)果如下圖所示:

通過觀察以上的運行結(jié)果,顯然可以發(fā)現(xiàn),該程序完成驗證了我們之前的觀點。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • Mybatis中返回主鍵值方式

    Mybatis中返回主鍵值方式

    這篇文章主要介紹了Mybatis中返回主鍵值方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java 插入排序之希爾排序的實例

    Java 插入排序之希爾排序的實例

    這篇文章主要介紹了Java 插入排序之希爾排序的實例的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Java字符串 正則表達(dá)式詳解

    Java字符串 正則表達(dá)式詳解

    這篇文章主要介紹了java使用正則表達(dá)式查找包含的字符串功能,結(jié)合具體實例形式分析了java針對字符串匹配查找的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下
    2021-09-09
  • Java多線程實現(xiàn)模擬12306火車站售票系統(tǒng)

    Java多線程實現(xiàn)模擬12306火車站售票系統(tǒng)

    12360火車票售票系統(tǒng)基本上大家都用過,那你知道是怎么實現(xiàn)的嗎,今天我們就模擬12306火車站售票系統(tǒng)來實現(xiàn),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 關(guān)于spring boot中幾種注入方法的一些個人看法

    關(guān)于spring boot中幾種注入方法的一些個人看法

    這篇文章主要給大家介紹了關(guān)于spring boot中幾種注入方法的一些個人看法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用spring boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 淺談spring ioc的注入方式及注入不同的數(shù)據(jù)類型

    淺談spring ioc的注入方式及注入不同的數(shù)據(jù)類型

    這篇文章主要介紹了淺談spring ioc的注入方式及注入不同的數(shù)據(jù)類型,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12
  • Spring?Security?核心過濾器鏈講解

    Spring?Security?核心過濾器鏈講解

    這篇文章主要介紹了Spring?Security?核心過濾器鏈,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java 獲取項目文件路徑實現(xiàn)方法

    java 獲取項目文件路徑實現(xiàn)方法

    以下是對java中獲取項目文件路徑的實現(xiàn)方法進(jìn)行了介紹,需要的朋友可以過來參考下
    2013-09-09
  • jstl EL表達(dá)式遍歷Map的方法

    jstl EL表達(dá)式遍歷Map的方法

    這篇文章主要介紹了jstl EL表達(dá)式遍歷Map的方法的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • Spring?Boot+Vue實現(xiàn)Socket通知推送的完整步驟

    Spring?Boot+Vue實現(xiàn)Socket通知推送的完整步驟

    最近工作中涉及消息通知功能的開發(fā),所以下面這篇文章主要給大家介紹了關(guān)于Spring?Boot+Vue實現(xiàn)Socket通知推送的完整步驟,文中通過實例代碼以及圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04

最新評論