JVM 常量池 執行時常量池 字串常量池的理解

2021-10-09 19:51:38 字數 335 閱讀 6721

補充:**答:**常量池有class檔案的常量池(在檔案中)、執行時常量池(記憶體中,由class檔案常量池得來),字串常量池是大的全域性字串快取池,公用。

問:是的,那我這裡有點疑惑,就是這個helloword在編譯期的時候,是存於class的常量池中的,在class被載入後,存於記憶體中的執行時常量池,那麼,是否意味著,存在兩份,還有乙份存於字串常量池中

問:還是說,此時字串常量池中,存放了執行時常量池的引用,或者,執行時常量池存放著字串常量池的引用

答:執行時常量池存放著字串常量池的引用

總結:也就是說字串常量池和執行時常量池在內容上是子集關係,常量池和執行時常量池是時間先後關係

JDK1 8關於執行時常量池, 字串常量池的要點

網上關於jdk 1.8的各種實驗,結論魚龍混雜 很多都相矛盾,網上有的實驗也被後人測試出了不同的結果 很多都分辨不了真假,這裡記錄一下網路上正確的結論,歡迎指正 首先自行區分執行時常量池與class檔案常量池 靜態常量池 的概念,jvm記憶體模型 方法區與永久代的區別,有些在我的其他部落格有介紹,連...

JVM字串常量池

stringtable intern 建立了幾個物件?string s newstring abc 2個。乙個在堆中,乙個在字串常量池中。string s1 newstring abc string s2 newstring abc 3個。字串常量池只會儲存乙份內容相同的字串。兩個在堆中,乙個在字串...

編譯時常量和執行時常量

public class testconstant class test public static final int a 10 public static final int b test length public static final string s world public stat...