隨筆-60  評論-117  文章-0  trackbacks-0
          這是一個很簡單,但卻是像我這樣的初學者很容易混淆的問題。作為初學者想要理解某一問題 ,以我之見,就是動手編個程序。
                = =和equals究竟有何區(qū)別?
          程序1:
          public class Test {
           public String judge(String a, String b) {
            if (a == b) {//如果a的內(nèi)存地址等于b的內(nèi)存地址,即a,b為同一個對象
             return "true";
            } else {
             return "false";
            }
           }

           public static void main(String args[]) {
            String a = new String("foo");//創(chuàng)建一個對象,將為它分配一個新空間。
            String b = new String("foo");
            Test test = new Test();
           System.out.println("result=="+test.judge(a, b));
           }
          }
          結(jié)果為:result==false
          程序2:
          public class Test {
           public String judge(String a, String b) {
            if (a.equals(b) ) { //如果a字符串的值等于b字符串的值
             return "true";
            } else {
             return "false";
            }
           }

           public static void main(String args[]) {
            String a = new String("foo");
            String b = new String("foo");
            Test test = new Test();
           System.out.println("result=="+test.judge(a, b));
           }
          }
          結(jié)果為:result==true
          程序3:
          public class Test {
           public String judge(String a, String b) {
            if (a==b) {
             return "true";
            } else {
             return "false";
            }
           }

           public static void main(String args[]) {
            String a = "foo";//將a指向這個字符串,不為它分配空間。
            String b = "foo";
            Test test = new Test();
           System.out.println("result=="+test.judge(a, b));
           }
          }
          結(jié)果為:result==true
          程序4:
          public class Test {
           public String judge(String a, String b) {
            if (a.equals(b)) {
             return "true";
            } else {
             return "false";
            }
           }

           public static void main(String args[]) {
            String a = "foo";
            String b = "foo";
            Test test = new Test();
           System.out.println("result=="+test.judge(a, b));
           }
          }

          結(jié)果為:result==true
          總結(jié)一下:
          但是“= =“操作符并不涉及到對象內(nèi)容的比較,只是說這兩個對象是否為同一個。而對象內(nèi)容的比較,正是equals方法做的事。
          posted on 2007-04-17 13:35 靜兒 閱讀(744) 評論(3)  編輯  收藏

          評論:
          # re: = =和equals有何區(qū)別 2007-04-17 17:39 | 山風小子
          溫故而知新,可以為師矣 :)  回復  更多評論
            
          # re: = =和equals有何區(qū)別[未登錄] 2009-04-02 18:01 | zhangqin
          不錯啊,多謝了啊  回復  更多評論
            
          # re: = =和equals有何區(qū)別 2009-10-20 15:26 | 一直在努力
          很好 謝謝了 辛苦  回復  更多評論
            

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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 湘潭市| 蕲春县| 镇江市| 古浪县| 宜君县| 绥棱县| 莒南县| 留坝县| 汉中市| 宣化县| 麦盖提县| 城步| 科尔| 宣威市| 喜德县| 宿迁市| 金华市| 林州市| 即墨市| 南投县| 阆中市| 沂南县| 山东| 永福县| 德惠市| 曲周县| 会东县| 长治县| 石渠县| 应用必备| 金溪县| 左贡县| 隆化县| 兖州市| 新兴县| 凯里市| 阳山县| 上林县| 衡阳县| 广德县| 邓州市|