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

Java String 常量池與 new String() 對象創建機制

     編輯:程式設計疑難解答

核心結論

String a = new String("aaaa") 在常量池無 "aaaa" 時,創建 兩個對象:

  1. 堆中 new String 創建的對象(引用賦給 a)。
  2. 常量池中自動駐留的 "aaaa" 字面量對象(JDK 7+ 常量池在堆中)。

記憶要點

  • new 關鍵字必定在堆創建新對象。
  • 字面量 "..." 編譯期進入常量池,運行期若不存在則創建。
  • 實際開發中直接用 String a = "aaaa"; 即可,避免不必要的對象創建,JVM 會自動複用常量池對象。

不必過度纠結對象計數,掌握「字面量優先、new 必新」原則即可。

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