三張圖徹底了解Java中字符串的不變性

該文章是圖說(shuō)Java系列文章中的一篇

創(chuàng)新互聯(lián)公司是一家專(zhuān)業(yè)提供禪城企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為禪城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。

定義一個(gè)字符串

String s = "abcd";

三張圖徹底了解Java中字符串的不變性

s中保存了string對(duì)象的引用。下面的箭頭可以理解為“存儲(chǔ)他的引用”。

使用變量來(lái)賦值變量

String s2 = s;

三張圖徹底了解Java中字符串的不變性

s2保存了相同的引用值,因?yàn)樗麄兇硗粋€(gè)對(duì)象。

字符串連接

s = s.concat("ef");

三張圖徹底了解Java中字符串的不變性

s中保存的是一個(gè)重新創(chuàng)建出來(lái)的string對(duì)象的引用。

總結(jié)

一旦一個(gè)string對(duì)象在內(nèi)存(堆)中被創(chuàng)建出來(lái),他就無(wú)法被修改。特別要注意的是,String類(lèi)的所有方法都沒(méi)有改變字符串本身的值,都是返回了一個(gè)新的對(duì)象。

如果你需要一個(gè)可修改的字符串,應(yīng)該使用StringBuffer 或者 StringBuilder。否則會(huì)有大量時(shí)間浪費(fèi)在垃圾回收上,因?yàn)槊看卧噲D修改都有新的string對(duì)象被創(chuàng)建出來(lái)。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

標(biāo)題名稱(chēng):三張圖徹底了解Java中字符串的不變性
文章源于:http://muchs.cn/article22/johhcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司關(guān)鍵詞優(yōu)化、品牌網(wǎng)站設(shè)計(jì)、企業(yè)建站、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開(kāi)發(fā)