<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,簡單又復(fù)雜


    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這個比較好理解,因為在編譯的時候會產(chǎn)生一個靜態(tài)對象“abc”, 執(zhí)行a = "abc"和b = "abc"的時候,只是把這個靜態(tài)對象賦給了a和b,所以兩個對象的引用相同,a==b
    但是,d的值為"abc"字符串,為什么jvm不把靜態(tài)的"abc"的引用賦給d對象呢?
    我的理解是:String a = "abc"; String b = "abc";這兩行代碼是在解釋執(zhí)行之前編譯成字節(jié)碼的時候,"abc"就放在常量池中了,所以在執(zhí)行的時候a和b指向同一個引用,而String d = c.substring(0, 3);是在執(zhí)行的時候才給d對象賦值"abc",所以這個"abc"應(yīng)該是放在堆中.
    還是想的不明白.

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

    評論

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

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

    主站蜘蛛池模板: 亚洲一卡2卡3卡4卡5卡6卡 | 久久久久久亚洲av无码蜜芽| 日本v片免费一区二区三区| 人成午夜免费大片在线观看| 亚洲AV人无码激艳猛片| 99精品全国免费观看视频| 一级看片免费视频| 亚洲视频中文字幕| 国产视频精品免费| 无码专区AAAAAA免费视频| 亚洲依依成人亚洲社区| 亚洲午夜无码久久久久| 大地资源免费更新在线播放| 韩国免费A级毛片久久| 亚洲AV无码国产精品色| 亚洲中文字幕在线观看| 成人最新午夜免费视频| 免费高清国产视频| 国产AV无码专区亚洲AV琪琪| 精品亚洲成AV人在线观看| 国产成人免费永久播放视频平台| 91麻豆国产免费观看| 黄色a三级三级三级免费看| 亚洲精品91在线| 中文字幕第13亚洲另类| 成人啪精品视频免费网站| 可以免费观看的国产视频| 亚洲AV无码成人网站在线观看 | 春意影院午夜爽爽爽免费| 亚洲第一成人在线| 亚洲αv久久久噜噜噜噜噜| 免费h黄肉动漫在线观看| 日韩免费一区二区三区在线 | 老司机永久免费网站在线观看| 美丽姑娘免费观看在线观看中文版| 国产亚洲综合视频| 亚洲日韩av无码中文| 亚洲人成高清在线播放| 亚洲色欲色欲综合网站| 亚洲乱码无码永久不卡在线| 亚洲成av人片天堂网老年人|