Java 中的 String 類

作者:xuguoqing07舱污。菜鳥一個(gè),希望能把所學(xué)到的內(nèi)容記錄下來粱栖,同時(shí)能幫助到他人话浇。文中若有錯(cuò)誤以及各位若有新的想法,還請(qǐng)指點(diǎn)一二闹究,在下感激不盡幔崖。

String 類:

(1)String str="abc";

如果方法區(qū)中的常量池里存在 abc,則 str 里面放的是此 abc 的地址渣淤,str直接指向方法區(qū)中的常量池赏寇;如果方法區(qū)中的常量池里沒有 abc,那么會(huì)在常量池中新建一個(gè) abc价认,然后再把這個(gè) abc 的地址給 str嗅定。總之用踩,str 直接指向方法區(qū)中的常量池渠退。

(2)String str1=new String("abc");

str1 (里面存的是 new 出來的對(duì)象的地址)指向堆內(nèi)存中的對(duì)象。
在這里需要說明一下脐彩,String 底層是 char 類型的數(shù)組碎乃,同時(shí) String 是不可變的字符序列。根據(jù)下面的內(nèi)存圖(畫藝不精......)來解釋一下(1)惠奸、(2)兩個(gè)語句荠锭。

圖1

由上圖可以看出 String str="abc" 中的 str1 直接指向方法區(qū)中的常量池里的 abc ,而 圖中 String str3=new String("abc") 中的 str3 里存放的新 new 出來的對(duì)象的地址晨川,即 str3 直接指向新建出來的對(duì)象(為了方便证九,暫且叫做對(duì)象 1)删豺。但是 abc 卻不存放在對(duì)象 1 里,對(duì)象 1 里實(shí)際上存在一個(gè)數(shù)組(暫且叫做 value[ ] 數(shù)組)愧怜,該數(shù)組里存放的是常量池中 abc 的地址呀页。String str4=new String("abc") 與 str3 一樣,所以 System.out.println(str3==str4); 的結(jié)果為 false拥坛,而 System.out.println(str3.equals(str4)); 的運(yùn)行結(jié)果為 true蓬蝶。

(3)String str5=new String(cArr);

char [ ] cArr={'a','b','c'};
String str5=new String(cArr);

注意(2)與(3)的區(qū)別!2峦铩丸氛! (3) 里面?zhèn)鬟M(jìn)去的是一個(gè)數(shù)組,不是直接給一個(gè)字符串著摔,根據(jù)圖 2 解釋如下:

圖2

根據(jù)上圖缓窜,在棧內(nèi)存里為 main 方法開辟一塊空間,里面有變量 cArr 和 str5谍咆。在堆 (heap) 里開辟了一個(gè) char(字符) 數(shù)組禾锤,把該數(shù)組的地址值賦給cArr,即 cArr 指向該數(shù)組摹察,str5 存放的是新 new 出來的對(duì)象的地址恩掷,即 str5 指向該對(duì)象,然后供嚎,重點(diǎn)來了黄娘,把數(shù)組的地址(cArr 的值)放到新建對(duì)象的 value[ ] 數(shù)組里(上文提到過)。然后新建對(duì)象會(huì)在堆內(nèi)存里新開辟一個(gè)空間克滴,根據(jù)地址值寸宏,找到 char [ ],把 char [ ] 數(shù)組里的內(nèi)容 copy 到新開辟的空間里偿曙,然后新建對(duì)象就指向新開辟的空間。

(4)StringBuffer

StringBuffer a=new StringBuffer("A");//第一句
a.append("B");//第二句

內(nèi)存圖如下所示:

圖3

語法第一句和文章 (2) String str1=new String("abc") 一樣羔巢,在這里就不廢話了望忆。在這里補(bǔ)充一句,String 在底層存的是一個(gè)char [ ] 類型的數(shù)組竿秆。所以启摄,"A" 實(shí)際存放在常量池中的 char [ ] 數(shù)組里。然后幽钢,第二句會(huì)把 "B" 放進(jìn) "A" 所在的數(shù)組里歉备,就變成了 "AB"。假設(shè) "A" 所在的數(shù)組存不下所要追加的內(nèi)容 (假設(shè)在此處不成立) 匪燕,那么蕾羊,會(huì)在常量池中新開一塊空間喧笔,把 "A" 和所要追加的內(nèi)容放里面。如圖中紅線所示龟再。

---我是菜鳥小七书闸,希望我們都能成為更好的自己。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末利凑,一起剝皮案震驚了整個(gè)濱河市浆劲,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌哀澈,老刑警劉巖牌借,帶你破解...
    沈念sama閱讀 216,544評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異割按,居然都是意外死亡膨报,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,430評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門哲虾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來丙躏,“玉大人,你說我怎么就攤上這事束凑∩孤茫” “怎么了?”我有些...
    開封第一講書人閱讀 162,764評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵汪诉,是天一觀的道長(zhǎng)废恋。 經(jīng)常有香客問我,道長(zhǎng)扒寄,這世上最難降的妖魔是什么鱼鼓? 我笑而不...
    開封第一講書人閱讀 58,193評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮该编,結(jié)果婚禮上迄本,老公的妹妹穿的比我還像新娘。我一直安慰自己课竣,他們只是感情好嘉赎,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,216評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著于樟,像睡著了一般公条。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上迂曲,一...
    開封第一講書人閱讀 51,182評(píng)論 1 299
  • 那天靶橱,我揣著相機(jī)與錄音,去河邊找鬼。 笑死关霸,一個(gè)胖子當(dāng)著我的面吹牛传黄,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播谒拴,決...
    沈念sama閱讀 40,063評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼英上!你這毒婦竟也來了炭序?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,917評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤苍日,失蹤者是張志新(化名)和其女友劉穎惭聂,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體相恃,經(jīng)...
    沈念sama閱讀 45,329評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辜纲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,543評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了拦耐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耕腾。...
    茶點(diǎn)故事閱讀 39,722評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖杀糯,靈堂內(nèi)的尸體忽然破棺而出扫俺,到底是詐尸還是另有隱情,我是刑警寧澤固翰,帶...
    沈念sama閱讀 35,425評(píng)論 5 343
  • 正文 年R本政府宣布狼纬,位于F島的核電站,受9級(jí)特大地震影響骂际,放射性物質(zhì)發(fā)生泄漏疗琉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,019評(píng)論 3 326
  • 文/蒙蒙 一歉铝、第九天 我趴在偏房一處隱蔽的房頂上張望盈简。 院中可真熱鬧柠贤,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,671評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幢尚。三九已至,卻和暖如春毅臊,著一層夾襖步出監(jiān)牢的瞬間皂林,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,825評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工呀癣, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留项栏,地道東北人流酬。 一個(gè)月前我還...
    沈念sama閱讀 47,729評(píng)論 2 368
  • 正文 我出身青樓摊滔,卻偏偏與公主長(zhǎng)得像呻袭,于是被迫代替她去往敵國(guó)和親左电。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,614評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容