最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中==運算符與equals方法的區(qū)別及intern方法詳解

 更新時間:2017年04月23日 15:33:38   作者:StellaAh  
這篇文章主要介紹了Java中==運算符與equals方法的區(qū)別及intern方法詳解的相關(guān)資料,需要的朋友可以參考下

Java中==運算符與equals方法的區(qū)別及intern方法詳解

1.  ==運算符與equals()方法
2. hashCode()方法的應(yīng)用
3. intern()方法

/* 
Come from xixifeng.com 
Author: 習(xí)習(xí)風(StellAah) 
*/ 
public class AboutString2  
{ 
  public static void main(String[]arsgs) 
  { 
    String myName="xixifeng.com"; 
    String myName3="xixifeng";  
    String myName4=".com"; 
    String myName5=myName3+myName4; 
    String myName6="xixifeng.com"; 
     
    if(myName==myName5) 
    { 
       
      System.out.println("myName==myName5"); 
    } 
    else 
    { 
      System.out.println("myName="+myName); 
      System.out.println("myName5="+myName5); 
      System.out.println("myName!=myName5"); 
    } 
    //經(jīng)運行打印出: myName!=myName5 
     
    if(myName==myName6) 
    { 
      System.out.println("myName==myName6"); 
    } 
    else 
    { 
      System.out.println("myName!=myName6"); 
    } 
    //經(jīng)運行得出: myName!=myName5,myName==myName6 
     
    //myName,myName5(myName5的值是由myName3+myName4得到的),myName6 這三個對象的值是相等的, 為什么 它們之間用==進行運算的結(jié)果是 myName!=myName5,myName==myName6呢? 
    //原因在于==運算符 
    //顯然==參與String運算中不是用來比較值的,而是用來比較對象是否相等的. 
    //那么在String運算中,通過什么方法來比較它們的值是否相等呢,java 提供了equals()方法 ,主要用于比較對象的值是否相等 
    //示例如下: 
    //myName==myName5 是false (不是同一個對象) 
    if(myName.equals(myName5)) 
    { 
      System.out.println("myName.equals(myName5) 比較的結(jié)果是true !"); 
    } 
    else 
    { 
      System.out.println("myName.equals(myName5) 比較的結(jié)果是false !"); 
    } 
    //經(jīng)運行輸出:myName.equals(myName5) 比較的結(jié)果是true ! 在由于myName與myName5不是同一個對象,充分說明: 
    //equals()方法[是用來比較對象的值是否相等] 
     
    //再拋出疑問:是不是兩個對象的哈希值相等就說明這兩個對象相等呢? 
    //(由上述測試myName==myName5 得出false ①表明myName與myName5不是同一個對象) 
    System.out.println(myName.hashCode()); 
    System.out.println(myName5.hashCode()); 
    //經(jīng)測試 ②myName與myName5的哈希值相等 
    //由①,② 得出: 兩個對象的hashCode值相等,不能表明其對象也相等. 
 
    //拋出疑問: 怎樣使myName與myName5的對象相等呢? 
    //引入intern()方法 
    myName5=myName5.intern(); 
    if(myName==myName5) 
    { 
       
      System.out.println("(myName==myName5) 得true"); 
    } 
    else 
    { 
      System.out.println("(myName==myName5) 得false"); 
    } 
    //經(jīng)運行打印出: (myName==myName5) 得true 
    //結(jié)論: intern()方法能使兩個(對象不相等而值相等的)對象變得相等 
    //myName5.intern();的意思,可以解釋為: myName5在內(nèi)存中查找對象嫁給自己,條件是,該對象要與自己的值相等. 找到了,就指定該對象. 
    //myName5找到對象,并認定,就不必再創(chuàng)建對象了,所以說這樣做,可以節(jié)約內(nèi)存資源. 
     
    //拋出疑問: 什么樣的對象建議使用intern()呢? 
    // myName="xixifeng.com" myName6="xixifeng.com", myName與myName6的對象是相等的,上述已經(jīng)證實. 
    // 所以說,對象在直接賦予同樣的值的時候沒有必要用intern(). 
    //myName="xixifeng.com" myName5=myName3+myName4,它們的值相等,但是對象不相等,上述已經(jīng)證實. 
    //所以說, 對象在間接賦予(有可能與已有對象)同樣的值的時候,建議用一下intern()方法,從而可公用內(nèi)存中存在的對象. 
     
     
    //==參與int型運算中,也營造類似的比較 
    int i=8; 
    int j=3; 
    int k=5; 
    int m=j+k; 
    int n=8; 
    if(i==m) 
    { 
      System.out.println("i="+i); 
      System.out.println("m="+m); 
      System.out.println("i==m"); 
    } 
    else 
    { 
      System.out.println("i!=m"); 
    } 
     
    if(i==n) 
    { 
      System.out.println("... ... ... ..."); 
      System.out.println("i="+i); 
      System.out.println("n="+n); 
      System.out.println("i==n"); 
    } 
    else 
    { 
      System.out.println("i!=n"); 
    } 
    //經(jīng)運行得出i=m(m的值由j+k得到),i=n 
    //i,m,n的值都相等 , 由于i==m 得出true i==n得出true  
    //所以可以得出結(jié)論: ==參與非對象類型運算時,是用來比較常量的值是否相等    
  } 
} 

綜上所屬,得出如下結(jié)論:

1) ==運算符參與對象類型運算時是用來比較對象是否想得的.
2) ==運算符參與非對象類型運算時是用來比較值是否相等的.
3) equals()方法用于比較兩個對象的值是否相等
4) 兩個對象的hashCode()值相等,并不代表其對象也相等
5) intern()方法能使兩個(對象不相等而值相等的)對象變得相等,從而可以公用內(nèi)存已有的對象,這樣做可以節(jié)約內(nèi)存資源.
6) 對象在間接賦予(有可能與已有對象)同樣的值的時候,建議用一下intern()方法,從而可公用內(nèi)存中存在的對象.

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

相關(guān)文章

  • SpringSecurity整合jwt權(quán)限認證的全流程講解

    SpringSecurity整合jwt權(quán)限認證的全流程講解

    這篇文章主要介紹了SpringSecurity整合jwt權(quán)限認證的全流程講解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • idea文件上有鎖文件只讀不可編輯的解決

    idea文件上有鎖文件只讀不可編輯的解決

    這篇文章主要介紹了idea文件上有鎖文件只讀不可編輯的解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 利用HttpUrlConnection 上傳 接收文件的實現(xiàn)方法

    利用HttpUrlConnection 上傳 接收文件的實現(xiàn)方法

    下面小編就為大家?guī)硪黄肏ttpUrlConnection 上傳 接收文件的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • spring boot使用thymeleaf模板的方法詳解

    spring boot使用thymeleaf模板的方法詳解

    thymeleaf 是新一代的模板引擎,在spring4.0中推薦使用thymeleaf來做前端模版引擎。下面這篇文章主要給大家介紹了關(guān)于spring boot使用thymeleaf模板的方法,文中通過示例代碼介紹的非常詳細,需要的朋友們下面來一起看看吧。
    2017-07-07
  • Java Spring Bean的生命周期管理詳解

    Java Spring Bean的生命周期管理詳解

    這篇文章主要為大家介紹了Java Spring Bean的生命周期管理,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Maven 主模塊和子模塊pom.xml依賴聲明

    Maven 主模塊和子模塊pom.xml依賴聲明

    這篇文章主要介紹了Maven 主模塊和子模塊pom.xml依賴聲明,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • Java正則表達式學(xué)習(xí)之分組與替換

    Java正則表達式學(xué)習(xí)之分組與替換

    這篇文章主要給大家介紹了關(guān)于Java正則表達式學(xué)習(xí)之分組與替換的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Mybatis創(chuàng)建逆向工程的步驟

    Mybatis創(chuàng)建逆向工程的步驟

    Mybatis逆向工程是一個自動生成Mybatis Mapper接口、XML文件和Java實體類的工具,可以提高開發(fā)效率,避免手動編寫大量的重復(fù)代碼,本文主要介紹了Mybatis創(chuàng)建逆向工程的步驟,感興趣的可以了解一下
    2023-10-10
  • Mybatis錯誤引起的程序啟動卡死問題及解決

    Mybatis錯誤引起的程序啟動卡死問題及解決

    這篇文章主要介紹了Mybatis錯誤引起的程序啟動卡死問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Springboot編寫CRUD時訪問對應(yīng)數(shù)據(jù)函數(shù)返回null的問題及解決方法

    Springboot編寫CRUD時訪問對應(yīng)數(shù)據(jù)函數(shù)返回null的問題及解決方法

    我在學(xué)習(xí)springboot,其中在編寫CRUD時發(fā)現(xiàn)訪問數(shù)據(jù)的函數(shù)執(zhí)行下去返回值是null但是其它部分正常,這篇文章主要介紹了Springboot在編寫CRUD時,訪問對應(yīng)數(shù)據(jù)函數(shù)返回null,需要的朋友可以參考下
    2024-02-02

最新評論

古浪县| 绍兴市| 扎鲁特旗| 彭泽县| 密云县| 米林县| 海原县| 如皋市| 天全县| 海淀区| 开原市| 浠水县| 伊宁市| 曲周县| 汕尾市| 屏东县| 剑川县| 连江县| 南平市| 扬中市| 望江县| 修水县| 淳安县| 河北省| 柳州市| 镇远县| 阳春市| 陵川县| 鞍山市| 永仁县| 南靖县| 灵武市| 梧州市| 阿合奇县| 新蔡县| 竹溪县| 鄂伦春自治旗| 德惠市| 新和县| 四子王旗| 丰顺县|