<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

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜


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

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

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



    有幾個(gè)問題要給大家說明一下:


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


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

        答案:一個(gè),就一個(gè)String s 。


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


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

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


    下面我們來看一段代碼:

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


    }
     
    }

    運(yùn)行結(jié)果是什么呢?




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


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
























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

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

    "=="比較的是棧內(nèi)存中的內(nèi)容,僅僅是內(nèi)容!!!

    "equals"比較的是對(duì)內(nèi)存中內(nèi)容,而不是棧內(nèi)存中內(nèi)容,比如你想返回TRUE:棧內(nèi)存中的內(nèi)容可以不同(也就是他們指向堆內(nèi)存中地址不同),但是他們?cè)诙褍?nèi)存中的內(nèi)容必須相同!!!  回復(fù)  更多評(píng)論
      

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


    網(wǎng)站導(dǎo)航:
     
    主頁 主站蜘蛛池模板: 亚洲啪啪AV无码片| 国产性爱在线观看亚洲黄色一级片| 久久精品亚洲中文字幕无码网站| 一级黄色免费网站| 国产精品亚洲综合专区片高清久久久| 羞羞视频网站免费入口| 亚洲精品无码久久不卡| 中文在线免费观看| 亚洲国产精品免费视频| 亚洲网站在线免费观看| 国产成人亚洲精品| 国产成人免费a在线视频app | 国产成人免费网站| 亚洲已满18点击进入在线观看| 成人激情免费视频| 日本一区二区在线免费观看| 亚洲无人区午夜福利码高清完整版| 中国一级全黄的免费观看| 亚洲一本综合久久| 思思re热免费精品视频66| 色婷婷六月亚洲综合香蕉| 2022中文字字幕久亚洲| 免费毛片在线看不用播放器| 亚洲精品视频在线播放| 欧洲美熟女乱又伦免费视频| 一级做a爰全过程免费视频毛片| 精品亚洲永久免费精品| 青青草免费在线视频| 精品特级一级毛片免费观看| 国产成人A亚洲精V品无码| 91麻豆国产免费观看| 精品久久亚洲一级α| 亚洲女久久久噜噜噜熟女| 国产免费女女脚奴视频网| 亚洲av日韩aⅴ无码色老头| 亚洲人成网站在线观看播放| xxxx日本免费| 亚洲免费在线观看| 亚洲av永久无码精品天堂久久| 亚洲男女内射在线播放| 国产麻豆视频免费观看|