亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解Java中“==”與equals()的區(qū)別

 更新時間:2017年02月03日 11:59:57   投稿:lqh  
這篇文章主要介紹了詳解Java中“==”與equals()的區(qū)別的相關(guān)資料,需要的朋友可以參考下

Java中“==”與equals()的區(qū)別

 對于關(guān)系操作符“==”,《Java編程思想》中是這樣描述的:“關(guān)系操作符生成的是一個boolean結(jié)果,它們計算的是操作數(shù)的值之間的關(guān)系”。這里的操作數(shù)的“值”值得我們注意。對于8種基本數(shù)據(jù)類型(boolean,byte,char,short,int,float,double,long),它們的變量直接存儲的就是“值”。所以,我們用“==”對基本數(shù)據(jù)類型的變量進行比較時,實際比較的就是變量存儲的值,例如:

public static void main(String[] args) {
    int a = 5, b = 5;
    System.out.println(a == b);
  }

很明顯,程序?qū)⑤敵觯簍rue。但是,下面這段代碼呢?

public static void main(String[] args) {
    Integer c = new Integer(5), d = new Integer(5);
    System.out.println(c == d);
  }

我們運行程序,發(fā)現(xiàn)輸出的是:false。這是因為Integer并非Java中的基本數(shù)據(jù)類型,其變量c、d在Java中被稱為指向?qū)ο蟮囊?,其存儲的“值”是對象在?nèi)存中的地址,而非值“5”本身。所以,c和d實際存儲的分別是兩個value值都為“5”的Integer對象的地址,這兩個對象不在同一塊內(nèi)存空間,“==”比較的結(jié)果自然是false了。

  那么equals()方法比較的是什么呢?equals()是基類Object中定義的方法,在Object類中,equals()方法定義為:

public boolean equals(Object obj) {
    return (this == obj);
  }

這等價于“==”。其實,equals()方法的意義在于重寫,否則對equals()的調(diào)用是沒有意義的。例如,繼承自O(shè)bject的Integer類便重寫了equals()方法:

public boolean equals(Object obj) {
    if (obj instanceof Integer) {
      return value == ((Integer)obj).intValue();
    }
    return false;
  }

該方法的意義是對value值進行比較,那么如果我們對于兩個具有相同value值的Integer對象調(diào)用equals()進行比較:

public static void main(String[] args) {
    Integer c = new Integer(5), d = new Integer(5);
    System.out.println(c.equals(d));
  }

結(jié)果便是true。

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

相關(guān)文章

  • Java刪除String中空格的多種解決方法匯總

    Java刪除String中空格的多種解決方法匯總

    在Java中從字符串中刪除空格有很多不同的方法,如trim,replaceAll等,下面這篇文章主要給大家介紹了關(guān)于Java刪除String中空格的多種解決方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • 在RabbitMQ中實現(xiàn)Work queues工作隊列模式

    在RabbitMQ中實現(xiàn)Work queues工作隊列模式

    這篇文章主要介紹了如何在RabbitMQ中實現(xiàn)Work queues模式,代碼詳細,解釋清晰,可以幫助大家更好理解java,對這方面感興趣的朋友可以參考下
    2021-04-04
  • 深入淺出理解Java泛型的使用

    深入淺出理解Java泛型的使用

    這篇文章主要介紹了深入淺出理解Java泛型的使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • 使用Springboot搭建OAuth2.0 Server的方法示例

    使用Springboot搭建OAuth2.0 Server的方法示例

    這篇文章主要介紹了使用Springboot搭建OAuth2.0 Server的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 詳解使用IntelliJ IDEA新建Java Web后端resfulAPI模板

    詳解使用IntelliJ IDEA新建Java Web后端resfulAPI模板

    這篇文章主要介紹了詳解使用IntelliJ IDEA新建Java Web后端resfulAPI模板,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 基于OpenCv與JVM實現(xiàn)加載保存圖像功能(JAVA?圖像處理)

    基于OpenCv與JVM實現(xiàn)加載保存圖像功能(JAVA?圖像處理)

    openCv有一個名imread的簡單函數(shù),用于從文件中讀取圖像,本文給大家介紹JAVA?圖像處理基于OpenCv與JVM實現(xiàn)加載保存圖像功能,感興趣的朋友一起看看吧
    2022-01-01
  • 簡述Java編程之關(guān)系操作符

    簡述Java編程之關(guān)系操作符

    這篇文章主要介紹了簡述Java編程中的關(guān)系操作符,同時對比較類作了簡單介紹,需要的朋友可以參考下
    2017-09-09
  • java實現(xiàn)查找替換功能

    java實現(xiàn)查找替換功能

    這篇文章主要為大家詳細介紹了java實現(xiàn)查找替換功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • springboot+jwt+微信小程序授權(quán)登錄獲取token的方法實例

    springboot+jwt+微信小程序授權(quán)登錄獲取token的方法實例

    本文主要介紹了springboot+jwt+微信小程序授權(quán)登錄獲取token的方法實例,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • springboot下實現(xiàn)RedisTemplate?List?清空

    springboot下實現(xiàn)RedisTemplate?List?清空

    我們經(jīng)常會使用Redis的List數(shù)據(jù)結(jié)構(gòu)來存儲一系列的元素,當我們需要清空一個List時,可以使用RedisTemplate來實現(xiàn),本文就來詳細的介紹一下如何實現(xiàn),感興趣的可以了解一下
    2024-01-01

最新評論