《架構師之路1》三張圖徹底瞭解Java中字串的不變性
定義一個字串
String s = "abcd";
s
中儲存了string物件的引用。下面的箭頭可以理解為“儲存他的引用”。
使用變數來賦值變數
String s2 = s;
s2儲存了相同的引用值,因為他們代表同一個物件。
字串連線
s = s.concat("ef");
s
中儲存的是一個重新建立出來的string物件的引用。
總結
一旦一個string物件在記憶體(堆)中被建立出來,他就無法被修改。特別要注意的是,String類的所有方法都沒有改變字串本身的值,都是返回了一個新的物件。
如果你需要一個可修改的字串,應該使用StringBuffer 或者 StringBuilder。否則會有大量時間浪費在垃圾回收上,因為每次試圖修改都有新的string物件被建立出來。
相關文章
- 基於徹底解耦合的實驗性iOS架構解耦iOS架構
- 8張圖瞭解JAVA整體構架知識體系!Java
- [圖說Java]字串的不變性Java字串
- 架構師之路-https底層原理架構HTTP
- 瞭解ASP.NET底層架構ASP.NET架構
- 一張圖瞭解Spring Cloud微服務架構SpringCloud微服務架構
- 一張圖徹底搞定 explainAI
- 架構師之路架構
- 架構師之路:從Java碼農到年薪八十萬的架構師架構Java
- 八張圖徹底瞭解JDK8 GC調優祕籍-附PDF下載JDKGC
- 51 張圖助你徹底掌握 HTTP!HTTP
- java架構師之路:JAVA程式設計師必看的15本書Java架構程式設計師
- 三分鐘瞭解架構的起源架構
- 七張圖徹底講清楚ZooKeeper分散式鎖的實現原理【石杉的架構筆記】分散式架構筆記
- 通向架構師之路架構
- 徹底瞭解 ab 測試的計算公式公式
- 幫 C/C++ 程式設計師徹底瞭解連結器C++程式設計師
- 一張圖徹底理解Javascript原型鏈JavaScript原型
- 菜鳥的架構師之路架構
- 兩張圖徹底搞懂MyBatis的Mapper原理!MyBatisAPP
- webpack之路徑徹底吃透Web
- Fabric架構演變之路架構
- 依賴倒置原則就看這篇,7張圖解徹底吃透,架構設計築基必知必會圖解架構
- 《架構師成長之路》連載之NO.1架構
- 初識Hive:3張圖瞭解Hive的資料型別、架構圖!Hive資料型別架構
- 一篇文章讓你徹底瞭解Java內部類Java
- 軟體構架師之路
- 一文徹底理解微服務架構微服務架構
- 徹底理解 Android Binder 通訊架構Android架構
- 架構師之路:一個架構師需要掌握的知識技能架構
- 【乾貨】MySQL底層架構設計,你瞭解多少?MySql架構
- 架構之路(1):目標架構
- 商城前端構架演變之路前端
- HashMap原始碼分析(二):看完徹底瞭解HashMapHashMap原始碼
- 徹底搞懂 PHP 變數結構體,多數文章觀點不準確PHP變數結構體
- 架構師成長之路也該瞭解的新一代微服務技術-ServiceMesh(上)架構微服務
- 5張圖徹底理解Python中的淺拷貝與深拷貝Python
- 一張圖徹底KO原型鏈(prototype,__proto__)原型