首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Java 字符串拼接底層機制:從 "a" 到 "ab" 發生了什麼

     編輯:程式設計疑難解答

代碼場景

String str = "a";
str += "b";

JVM 執行全過程

  1. 創建字符串常量 "a" 於字符串常量池,str 引用指向它
  2. 遇到 +=,編譯器轉換為 StringBuilder 操作:
    • 創建 StringBuilder 對象
    • append("a")、append("b")
    • toString() 生成新字符串 "ab" 於堆內存
  3. str 引用更新指向新對象 "ab"
  4. 原 "a"、"b" 短暫駐留後被 GC 回收(若無其他引用)

內存區域視角

  • 棧:存儲局部引用變量 str
  • 堆:存儲 StringBuilder 臨時對象及最終 "ab" 實例
  • 方法區/常量池:存儲字面量 "a"、"b"

理解此過程有助於優化高頻拼接場景(直接使用 StringBuilder 避免隱式創建)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved