<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    心有多大舞臺便有多大

    Embrace changes, pursue excellence, share niceness.

    String,簡單又復雜


    String a = "abc";
    String b = "abc";
    Assert.assertTrue(a == b);
    String c = "abcdefg";
    String d = c.substring(0, 3);
    Assert.assertFalse(a == d);
    a == b這個比較好理解,因為在編譯的時候會產生一個靜態對象“abc”, 執行a = "abc"和b = "abc"的時候,只是把這個靜態對象賦給了a和b,所以兩個對象的引用相同,a==b
    但是,d的值為"abc"字符串,為什么jvm不把靜態的"abc"的引用賦給d對象呢?
    我的理解是:String a = "abc"; String b = "abc";這兩行代碼是在解釋執行之前編譯成字節碼的時候,"abc"就放在常量池中了,所以在執行的時候a和b指向同一個引用,而String d = c.substring(0, 3);是在執行的時候才給d對象賦值"abc",所以這個"abc"應該是放在堆中.
    還是想的不明白.

    posted on 2008-04-14 11:26 pony 閱讀(306) 評論(1)  編輯  收藏 所屬分類: Java

    評論

    # re: String,簡單又復雜[未登錄] 2008-04-15 15:14 pony

    今天看String的源碼,發現有個方法:format(String format, Object ... args)
    這個方法挺不錯!呵呵
    一般我們要打印一個提示信息的話,可能是:
    System.out.println("test1" + var1 + "test2" + var2);
    而用這個方法的話,就變為:
    System.out.println(String.format("test1 %s test2 %s", var1, var2));
    這對c程序員應該是很熟悉了!  回復  更多評論   

    主站蜘蛛池模板: 日本在线观看免费高清| 亚洲春色在线视频| 国产精品黄页在线播放免费| 国产成人免费在线| xx视频在线永久免费观看| 亚洲天堂免费在线| 114一级毛片免费| 成年网站免费视频A在线双飞| 欧美在线看片A免费观看| 免费a级毛片高清视频不卡| 国语成本人片免费av无码| 成人男女网18免费视频| 国产在线19禁免费观看| 亚洲精品高清一二区久久| 中文字幕在线亚洲精品| 亚洲国产成人片在线观看无码| 亚洲va久久久噜噜噜久久狠狠| 亚洲A∨无码无在线观看| 亚洲精品国产成人| 亚洲熟妇成人精品一区| 免费国产a理论片| 日韩精品无码免费专区网站| 99爱免费观看视频在线| 免费影院未满十八勿进网站| 免费毛片在线播放| 亚洲成av人片天堂网老年人| 国产成人精品日本亚洲专区| 亚洲欧洲第一a在线观看| 亚洲男人的天堂久久精品| 久久精品国产亚洲AV电影网| 国产无限免费观看黄网站| 久久午夜夜伦鲁鲁片免费无码| 97视频免费在线| 免费一级毛片女人图片| 亚洲AV永久无码区成人网站| 亚洲国产精品成人久久久| 美女视频黄.免费网址| 国内永久免费crm系统z在线| 色se01短视频永久免费| 国产免费拔擦拔擦8x| 亚洲成亚洲乱码一二三四区软件|