JVM常量池分析

2022-03-28 14:55:11 字數 321 閱讀 5310

clas檔案中除了有類的版本、欄位等描述資訊外,還有常量池表(constant pool table),用於存放編譯期生成的各種字面量和符號引用,這部分內容在類載入後會存放在方法區中的執行時常量池

執行時常量池是在方法區中,即jdk1.8中的元空間。jvm將類載入到記憶體中後,會將class常量池中的內容存放到執行時常量池中。

為了減少字串物件的重複建立,復用字串物件,在堆中開闢了一段記憶體用於存放字串常量

深入理解jvm-class常量池

oracle官方文件

JVM的常量池

指的是在編譯期被確定 並被儲存在已編譯的class檔案中的一些資料。基本型別 物件型 符號引用 除了包含 中所定義的各種基本型別 比如,int long等,和物件型,比如,string及陣列,的常量值,比如final修飾外 還包含一些以文字形式出現的符號引用,1 類和介面的全限定名 2 欄位的名稱和...

JVM字串常量池

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

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

補充 答 常量池有class檔案的常量池 在檔案中 執行時常量池 記憶體中,由class檔案常量池得來 字串常量池是大的全域性字串快取池,公用。問 是的,那我這裡有點疑惑,就是這個helloword在編譯期的時候,是存於class的常量池中的,在class被載入後,存於記憶體中的執行時常量池,那麼,...