第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

s3 和s4與s1和s2有和不同,為什么一個(gè)地址相同,一個(gè)不同?

http://img1.sycdn.imooc.com//55391be10001e85405270114.jpg

s3 和s4與s1和s2有和不同,為什么一個(gè)地址相同,一個(gè)不同?http://img1.sycdn.imooc.com//55391c75000105d402150050.jpg

正在回答

4 回答

? 字符串存儲(chǔ)的地方有兩種,分別是

  1. 常量池

  2. 堆內(nèi)存

? 我們?cè)诔绦蛑型ǔ?huì)用以下四種方式來(lái)創(chuàng)建字符串,現(xiàn)在我分別說(shuō)說(shuō)這四種創(chuàng)建方式創(chuàng)建的字符串分別存儲(chǔ)到什么地方:

  1. String?s?=?new?String("imooc");??
    /*
    存儲(chǔ)到堆中,首先會(huì)判斷池中是否有該字符串,如果有,則從池中復(fù)制一份到堆中,將堆中的地址返回引用對(duì)象;如果沒(méi)有,則在堆中創(chuàng)建一份,返回堆中的地址給引用對(duì)象。
    */
  2. String?s?=?"imooc";
    /*
    存儲(chǔ)到常量池中,首先判斷池中是否有該字符串,如果有,則從池中返回地址給引用對(duì)象;如果沒(méi)有,則從池中創(chuàng)建該字符串,然后返回池中的地址給引用對(duì)象。
    */
  3. String?s?=?"I?love?"?+?"imooc";
    /*
    存儲(chǔ)到常量池中,首先判斷池中是否有該字符串,如果有,則從池中返回地址給引用對(duì)象;如果沒(méi)有,則從池中創(chuàng)建該字符串,然后返回池中的地址給引用對(duì)象。
    */
  4. String?s1?=?"I?love";
    String?s2?=?s1?+?"imooc";
    /*
    存儲(chǔ)到堆中,首先會(huì)判斷池中是否有該字符串,如果有,則從池中復(fù)制一份到堆中,將堆中的地址返回引用對(duì)象;如果沒(méi)有,則在堆中創(chuàng)建一份,返回堆中的地址給引用對(duì)象。
    */


    參考地址:Java中的String與常量池





0 回復(fù) 有任何疑惑可以回復(fù)我~

http://blog.csdn.net/cs_lht/article/details/6742531

1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

蒼白的沉淀

這個(gè)連接里面的文章中提到了“字符數(shù)據(jù)池”的內(nèi)存管理機(jī)制。字符數(shù)據(jù)池也是屬于堆內(nèi)存么,還是說(shuō)它只是堆內(nèi)存機(jī)制里面的一個(gè)概念?感覺(jué)說(shuō)的挺有道理,但是仔細(xì)想想又覺(jué)得有點(diǎn)懵。。。。。
2015-07-12 回復(fù) 有任何疑惑可以回復(fù)我~
#2

deziko 回復(fù) 蒼白的沉淀

字符數(shù)據(jù)池并不屬于堆內(nèi)存中,它是屬于常量存儲(chǔ)范疇的,具體可以看《Java編程思想》的第2章。
2015-08-31 回復(fù) 有任何疑惑可以回復(fù)我~

你可以在網(wǎng)上搜一下字符串池和堆內(nèi)存,這樣便于理解

1 回復(fù) 有任何疑惑可以回復(fù)我~

你可以這么理解

你在內(nèi)存中開(kāi)辟了一塊空間,這塊空間中存放的是"imooc",當(dāng)你定義變量的時(shí)候,就會(huì)檢測(cè)內(nèi)存中是否存在該字符串,如果存在的話直接引用就OK了,這也就是為什么s1和s2的地址一樣了。就是因?yàn)樵趧?chuàng)建s1之后,在內(nèi)存中已經(jīng)有"imooc"這個(gè)字符串了,那么再創(chuàng)建s2的時(shí)候,自動(dòng)去查內(nèi)存中是否有相同的字符串,所以他倆就相等。

而為什么s3和s4不相等呢,是因?yàn)樽址坏﹦?chuàng)建,就不會(huì)改變,也就是你在做字符串拼接的時(shí)候,會(huì)創(chuàng)建一個(gè)新的字符串對(duì)象,也就是會(huì)另外開(kāi)辟一塊空間,用來(lái)存放所新創(chuàng)建的字符串。所以s3是一個(gè)新的地址,而s4也是一個(gè)新的地址

7 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

s3 和s4與s1和s2有和不同,為什么一個(gè)地址相同,一個(gè)不同?

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)