漁人碼頭

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

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

          Posted on 2007-03-11 21:09 Fisher 閱讀(473) 評論(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
          主站蜘蛛池模板: 英吉沙县| 吉安市| 宜兰县| 邢台市| 中山市| 营口市| 富源县| 武汉市| 永康市| 峨眉山市| 鲁甸县| 兴海县| 页游| 和政县| 哈巴河县| 志丹县| 武威市| 南召县| 兴城市| 东乌| 青神县| 缙云县| 澎湖县| 平果县| 丹江口市| 张家口市| 汕尾市| 茌平县| 延庆县| 仙居县| 建瓯市| 崇州市| 鄂托克旗| 西丰县| 当涂县| 佛冈县| 普安县| 麟游县| 北流市| 古丈县| 祁东县|