JAVA中==與equals()用法的區別

          在java中"=="是用來比較兩者儲存值的地址是否相同,比如A==B,就是比較A和B所儲存值的地址是否相同。

          再來看看equals()的使用 

          在java中有這兩種情況存在:

                1、使用object類中的equals()方法,這個是java中最初的equals()方法

                   如果你自定義一個類A,并且沒有去繼承其他的類,這時A中的equals()

                   的功能就是比較兩者儲存值的地址是否相同。因為所有的類都繼承object

                   類,而object類中有equals()這樣的方法

                  object類中的equals()方法的源代碼如下:

                    public boolean equals(object obj)

                    {

                      return this == obj;

                    }

           

                   從這段代碼中,我們可以再次確定,這種情況下的equals()方法的功能是

                   比較兩者儲存值的地址。

           

           

                2、自定義一個類B,但B類繼承了c類,而c類中的equals()方法已經被重寫過

                      了,這種情形就需要具體情況具體分析了,但大部分被重寫的equals()方

                      法所擁有的功能就是比較兩者儲存值的內容是否相同,而不再是比較地址

                      了。比如:創建一個String對象  String str1 = new String("1");

                      String str2 = new String("1");  

                      這時str1.equals(str2)比較的就是str1和str2中儲存值的內容是否相同 

                      了,因為String類中的equals()就被重寫了,但這并不意味著所有被重寫

                      過的equals()方法都是用來比較內容的(因為目前我所遇到的只有這種情

                      況,如果大家有興趣可以去多研究研究

          總結:"=="就只有一種用法,而equals()有兩種用法,只是所使用的環境不一樣而已。

          posted on 2012-05-15 11:56 gps夢想 閱讀(719) 評論(0)  編輯  收藏 所屬分類: JAVA基礎


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 遵化市| 乐清市| 新余市| 渝北区| 加查县| 金坛市| 叶城县| 五常市| 亚东县| 喀喇沁旗| 丰镇市| 桐柏县| 息烽县| 酉阳| 泰兴市| 贵州省| 临沧市| 华宁县| 正宁县| 岳普湖县| 静安区| 永和县| 衡水市| 米泉市| 峨眉山市| 壤塘县| 新密市| 嘉兴市| 栾城县| 宣恩县| 赣州市| 于田县| 什邡市| 若尔盖县| 云和县| 达孜县| 额尔古纳市| 股票| 山阴县| 亳州市| 盐亭县|