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

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

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

    隨筆 - 20  文章 - 57  trackbacks - 0
    <2010年11月>
    31123456
    78910111213
    14151617181920
    21222324252627
    2829301234
    567891011

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    51CTO

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜


    完全用例子告訴你!不過首先你要清楚問題問的是什么?

    首先,因該明白String是引用類型,是一個類,是一個不可變的類,并且有著特殊的作用。
    String 只能復制一次!復制后不可改變!

    String s = new String(“abc”);
    s = new String(“cba”);
     
    以上的代碼并不是對s進行賦值,而是將“abc”的引用地址,從新賦給了s;
    這個過程的內存是怎么分配的呢?



    有幾個問題要給大家說明一下:


    1.String s = new String("abc");//在運行時涉及幾個String實例?
      
        答案:兩個,一個是字符串字面量"xyz"所對應的、駐留(intern)在一個全局共享的字符串常量池中的實例,另一個是通過new String(String)創(chuàng)建并初始化的、內容與"xyz"相同的實例。


    2.String s = new String("abc");//涉及用戶聲明的幾個String類型的變?

        答案:一個,就一個String s 。


    3.String s = null;
      
        Java里變量就是變量,引用類型的變量只是對某個對象實例或者null的引用,不是實例本身。聲明變量的個數跟創(chuàng)建實例的個數沒有必然關系。


    4.String s = new String("abc");//創(chuàng)建了幾個String Object?

        答案:兩個,一個是“abc”——這是一個匿名對象;一個是指向“abc”的引用對象s——這個是將匿名對象的地址賦給了s。


    下面我們來看一段代碼:

    public class text{
       
       public static void main(String[] args){
          //定義一個str
          String str = new String("abc");
          //定義一個str1
          String str1 = "abc";
          //定義一個str2
          String str2 = "abc";
         
          System.out.println(str1 == str);
          System.out.println(str2 == str1);


    }
     
    }

    運行結果是什么呢?




    為什么第一個運行結果是false呢?  在這里"==" 其實比較的是他們在堆內存中的地址,因為str 和 str1 在堆內存中的地址不同的所以運行結果是false;
    為什么第二個運行結果是true呢?   在這要說明一下,Sting是一個共享式輸出類型,在內存中有一個String pool 用于存放String類型中相同的值。所以在給str2賦值的時候,JVM會在String pool中查找是否有與其所賦的值相等,如果相等就將相等的值的地址賦給str2,如果沒有則在String pool中新開辟一塊控件存放str2的內容。


    這是我現(xiàn)在對String的一些理解,如果有錯誤,希望大家指出來,在這里謝謝大家了!
























    posted on 2010-10-16 23:51 tovep 閱讀(375) 評論(4)  編輯  收藏

    FeedBack:
    # re: Java_String小結 2010-10-17 12:42 迷人笑笑
    這是用什么工具畫的圖啊!?外觀不錯-呵呵---  回復  更多評論
      
    # re: Java_String小結 2010-10-17 18:57 Tovep
    @迷人笑笑
    用的是QQ的截圖做的! 呵呵!  回復  更多評論
      
    # re: Java_String小結 2010-11-10 20:01 小六夜瘋狂
    字符串常量池?
    “==”和equals  回復  更多評論
      
    # re: Java_String小結 2010-11-10 21:14 Tovep
    @小六夜瘋狂
    你可以這么理解:

    "=="比較的是棧內存中的內容,僅僅是內容!!!

    "equals"比較的是對內存中內容,而不是棧內存中內容,比如你想返回TRUE:棧內存中的內容可以不同(也就是他們指向堆內存中地址不同),但是他們在堆內存中的內容必須相同!!!  回復  更多評論
      

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


    網站導航:
     
    主頁 主站蜘蛛池模板: 我们的2018在线观看免费高清| 两个人日本免费完整版在线观看1| 67194国产精品免费观看| 亚洲开心婷婷中文字幕| 无遮挡国产高潮视频免费观看| 免费国产怡红院在线观看| 亚洲av无码日韩av无码网站冲| 中文字幕无码成人免费视频| 亚洲AV无码一区二区三区牛牛| 免费国产黄线在线观看| 亚洲综合精品伊人久久| 在线jyzzjyzz免费视频| 亚洲日韩av无码中文| 国产资源免费观看| 五月婷婷免费视频| 亚洲乱亚洲乱妇无码麻豆| 日韩精品无码免费专区午夜不卡| 亚洲VA中文字幕无码毛片| 免费黄色电影在线观看| 亚洲狠狠ady亚洲精品大秀| 中文字幕av无码无卡免费| 亚洲色成人网站WWW永久四虎| 国产在线19禁免费观看国产| 免费的黄网站男人的天堂| 亚洲熟女少妇一区二区| 蜜桃视频在线观看免费视频网站WWW| 亚洲六月丁香六月婷婷蜜芽 | a视频在线免费观看| 久久亚洲精品国产精品黑人| 久热中文字幕在线精品免费| 亚洲精华国产精华精华液好用| 亚洲精品在线视频| 免费A级毛片无码A∨ | xvideos亚洲永久网址| 免费在线看黄的网站| 亚洲伊人精品综合在合线| 国产jizzjizz视频免费看| 免费看无码特级毛片| 亚洲国产综合精品中文第一| 国产亚洲精品福利在线无卡一| 久久久久av无码免费网|