zhangsenwei

          張森煒的博客

          聯(lián)系 管理
            19 Posts :: 8 Stories :: 55 Comments :: 0 Trackbacks

          在講 == 和 equals 的區(qū)別前我們需要確認一下 Java 中的數(shù)據(jù)類型。在Java中有基本數(shù)據(jù)類型和引用數(shù)據(jù)類型兩種。
          1、8種基本數(shù)據(jù)類型:
          四種整數(shù)類型(byte、short、int、long)
          兩種浮點數(shù)類型(float、double)
          一種字符類型(char)
          一種布爾類型(boolean)
          2、引用數(shù)據(jù)類型:

          除了上面我們說的 8 種基本數(shù)據(jù)類型外,其他在Java中出現(xiàn)的類型都是引用數(shù)據(jù)類型。如我們自己寫了一個Dog類,而在上面說的8種基本數(shù)據(jù)類型中不包括Dog類型,所以Dog類型是隸屬于
          引用數(shù)據(jù)類型的。

          ==的理解:

          要理解 == 我們學(xué)要從兩個方面來理解:

          (1) == 兩邊為 8 中基本數(shù)據(jù)類型時:
              當 == 兩邊為8中基本數(shù)據(jù)類型時, == 判斷的是兩邊變量中存放的內(nèi)容是否相等。例:

           

          public class Test {

              
          public static void main(String[] args) {
                  
          int a = 10;
                  
          int b = 10;
                  
          if (a == b) {
                      System.out.println(
          "變量a和變量b中的值相等");
                  }

              }


          }

           

          上面的例子的運行結(jié)果是在控制臺中輸出"變量a和變量b中的值相等"  我們可以看出當 == 兩邊為8種基本數(shù)據(jù)類型時比較的時內(nèi)容換句話說就是比較變量的值。

          (2) == 兩邊為引用數(shù)據(jù)類型時:
               當 == 兩邊為引用數(shù)據(jù)類型事,== 判斷的是引用數(shù)據(jù)類型的對象的內(nèi)存地址是否一樣,如果 == 比較的內(nèi)存地址一樣表示 == 兩邊是同一個對象,否則 == 兩邊不是同一個對象。例:

           

          public class Test {

              
          public static void main(String[] args) {
                      
          //在8中數(shù)據(jù)類型中沒有String類型所以String是屬于引用數(shù)據(jù)類型的
                  String str1 = new String("abc");
                      
          //在這里在創(chuàng)建一個str2對象讓他的值和str1一樣
                  String str2 = new String("abc");
                      
          //我們在用 == 來進行判斷會發(fā)現(xiàn) str1 == str2條件不成立我們可以看出這里比較的不是str1和str2的值
                  if (str1 == str2) {
                      System.out.println(
          "對象str1和對象str2是同一對象,他們的內(nèi)存地址相同");
                  }
           else {
                      System.out.println(
          "對象str1和對象str2不是同一對象,他們的內(nèi)存地址不相同");
                  }

              }

          }

          equals的理解:
          equals的理解就容易多了,equals他是一個方法,而方法只有對象才能擁有,所以equals的左邊一定是一個對象他的語法格式因該是:
          對象名.equals(比較的內(nèi)容)
          例:

          public class Test {

              
          public static void main(String[] args) {
                  String str1 
          = new String("abc");
                  
          //equals的括號中可以直接寫入要比較的內(nèi)容
                  if (str1.equals("abc")) {
                      System.out.println(
          "對象str1的內(nèi)容和 abc 相同");
                  }


                  String str2 
          = new String("abc");
                  
          //equals括號中也可以是一個要比較的對象,注意這里比較的是str1對象和str2對象的內(nèi)容
                  if (str1.equals(str2)) {
                      System.out.println(
          "對象str1的內(nèi)容和 str2 的內(nèi)容相同");
                  }


              }

          }
          posted on 2008-06-19 16:31 張森煒 閱讀(140) 評論(0)  編輯  收藏

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 新竹市| 榆树市| 屏东市| 威宁| 西丰县| 荔波县| 定远县| 集贤县| 邯郸县| 许昌县| 马关县| 德州市| 义马市| 双辽市| 河西区| 琼结县| 都兰县| 望江县| 杭州市| 子洲县| 营山县| 大宁县| 班戈县| 阿鲁科尔沁旗| 怀仁县| 恩平市| 长汀县| 同仁县| 本溪市| 治县。| 眉山市| 社会| 通榆县| 宁陵县| 沙雅县| 霍州市| 延庆县| 成安县| 保德县| 黄大仙区| 永靖县|