漁人碼頭

          天行健,君子以自強不息。地勢坤,君子以厚德載物。
          posts - 12, comments - 16, trackbacks - 0, articles - 43
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          intern()得到的String之間的==

          Posted on 2007-03-11 21:09 Fisher 閱讀(481) 評論(0)  編輯  收藏 所屬分類: Java 學習筆記
          String s1="abc"; // 這種形式的字符串,被保存在常量池中
          String s2=new String("abc"); // 用new生成的字符串,保存在堆中
          關于intern()方法,見下列說明:
          When the intern method is invoked, if the pool already contains a string equal to this String object as determined by the equals(Object) method, then the string from the pool is returned. Otherwise, this String object is added to the pool and a reference to this String object is returned.
          綜上,解決你的第三個問題:
          String s1=new String("abc");     // s1指向的是堆中的地址
          String s2=new String("abc").intern();  // s2指向的是常量池中的地址
          System.out.println(s1==s2) ;    // 地址根本就不同,自然s1==s2為false"

          ?

          ????????String?aaa?=?new?String("aaa");
          ????????String?aaa2?
          =?new?String("aaa").intern();
          ????????
          ????????System.out.println(aaa?
          ==?aaa2);//false
          ????????System.out.println(aaa?==?"aaa");//false
          ????????System.out.println(aaa2?==?"aaa");//true
          主站蜘蛛池模板: 溧水县| 资源县| 临洮县| 沁水县| 奉新县| 石棉县| 伊川县| 昆明市| 平遥县| 台州市| 深圳市| 临安市| 龙游县| 云梦县| 博兴县| 祁阳县| 北流市| 中牟县| 永新县| 泉州市| 长海县| 长春市| 军事| 丹巴县| 铅山县| 隆尧县| 天门市| 叙永县| 广饶县| 白银市| 天峨县| 古交市| 梅州市| 贡嘎县| 霍林郭勒市| 岚皋县| 依兰县| 柳江县| 昭觉县| 重庆市| 东兴市|