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

           public static void main(String args[]) {
            String a = new String("foo");//創(chuàng)建一個(gè)對(duì)象,將為它分配一個(gè)新空間。
            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指向這個(gè)字符串,不為它分配空間。
            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é)一下:
          但是“= =“操作符并不涉及到對(duì)象內(nèi)容的比較,只是說(shuō)這兩個(gè)對(duì)象是否為同一個(gè)。而對(duì)象內(nèi)容的比較,正是equals方法做的事。
          posted on 2007-04-17 13:35 靜兒 閱讀(744) 評(píng)論(3)  編輯  收藏

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 岑巩县| 临城县| 永和县| 肇源县| 威宁| 紫阳县| 肥西县| 汝阳县| 涞源县| 临泽县| 喀喇| 桓仁| 天峻县| 香格里拉县| 南汇区| 松滋市| 东台市| 二手房| 禄丰县| 宁德市| 定襄县| 那曲县| 全南县| 沙雅县| 沈丘县| 五常市| 博客| 寿光市| 和田市| 大田县| 墨竹工卡县| 乐业县| 托里县| 漠河县| 河南省| 通城县| 玉林市| 岑溪市| 县级市| 晴隆县| 贺州市|