三張圖徹底了解Java中字符串的不變性
該文章是圖說(shuō)Java系列文章中的一篇
定義一個(gè)字符串
String s = "abcd";
s中保存了string對(duì)象的引用。下面的箭頭可以理解為“存儲(chǔ)他的引用”。
使用變量來(lái)賦值變量
String s2 = s;
s2保存了相同的引用值,因?yàn)樗麄兇硗粋€(gè)對(duì)象。
字符串連接
s = s.concat("ef");
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í)有所幫助,也希望大家多多支持腳本之家。
- JAVA中字符串函數(shù)subString的用法小結(jié)
- Java String字符串和Unicode字符相互轉(zhuǎn)換代碼
- Java中去除字符串中所有空格的幾種方法
- Java 替換字符串中的回車(chē)換行符的方法
- java的io操作(將字符串寫(xiě)入到txt文件中)
- Java正則多字符串匹配替換
- Java生成和解析XML格式文件和字符串的實(shí)例代碼
- Java中char數(shù)組(字符數(shù)組)與字符串String類(lèi)型的轉(zhuǎn)換方法
- Java生成MD5加密字符串代碼實(shí)例
- Java中JSON字符串與java對(duì)象的互換實(shí)例詳解
相關(guān)文章
Java動(dòng)態(tài)代理四種實(shí)現(xiàn)方式詳解
這篇文章主要介紹了Java四種動(dòng)態(tài)代理實(shí)現(xiàn)方式,對(duì)于開(kāi)始學(xué)習(xí)java動(dòng)態(tài)代理或者要復(fù)習(xí)java動(dòng)態(tài)代理的朋友來(lái)講很有參考價(jià)值,有感興趣的朋友可以參考一下2021-04-04Java嵌入式開(kāi)發(fā)的優(yōu)勢(shì)及有點(diǎn)總結(jié)
在本篇內(nèi)容里小編給大家整理了關(guān)于Java嵌入式開(kāi)發(fā)的優(yōu)勢(shì)及相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2022-11-11Java如何使用遞歸查詢多級(jí)樹(shù)形結(jié)構(gòu)數(shù)據(jù)(多級(jí)菜單)
這篇文章主要介紹了Java如何使用遞歸查詢多級(jí)樹(shù)形結(jié)構(gòu)數(shù)據(jù)(多級(jí)菜單),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07SpringBoot整合Redisson實(shí)現(xiàn)分布式鎖
本文主要介紹了SpringBoot整合Redisson實(shí)現(xiàn)分布式鎖,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11SpringMVC學(xué)習(xí)之JSON和全局異常處理詳解
在項(xiàng)目上線之后,往往會(huì)出現(xiàn)一些不可預(yù)料的異常信息,對(duì)于邏輯性或設(shè)計(jì)性問(wèn)題,開(kāi)發(fā)人員或者維護(hù)人員需要通過(guò)日志,查看異常信息并排除異常,這篇文章主要給大家介紹了關(guān)于SpringMVC學(xué)習(xí)之JSON和全局異常處理的相關(guān)資料,需要的朋友可以參考下2022-10-10SpringBoot中GlobalExceptionHandler異常處理機(jī)制詳細(xì)說(shuō)明
Spring Boot的GlobalExceptionHandler是一個(gè)全局異常處理器,用于捕獲和處理應(yīng)用程序中發(fā)生的所有異常,這篇文章主要給大家介紹了關(guān)于Java中GlobalExceptionHandler異常處理機(jī)制的相關(guān)資料,需要的朋友可以參考下2024-03-03Java中ThreadLocal?導(dǎo)致內(nèi)存?OOM?的原因分析
這篇文章主要介紹了Java中ThreadLocal導(dǎo)致內(nèi)存OOM的原因分析,文章基于Java的相關(guān)內(nèi)容展開(kāi)ThreadLocal導(dǎo)致內(nèi)存OOM的原因分析,需要的小伙v阿布可以參考一下2022-05-05java調(diào)用webService接口的代碼實(shí)現(xiàn)
本文主要介紹了java調(diào)用webService接口的代碼實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02