欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

運行時常量池和字符串常量池的區(qū)別及說明

 更新時間:2023年12月26日 09:17:40   作者:島田悠米  
這篇文章主要介紹了運行時常量池和字符串常量池的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

運行時常量池和字符串常量池的區(qū)別

常量池

每個class一份,存在于字節(jié)碼文件中。

常量池中有字面量(數量值、字符串值)和符號引用(類符號引用、字段符號引用、方法符號引用),虛擬機指令根據這張常量表找到要執(zhí)行的類名、方法名、參數類型、字面量等類型

運行時常量池

每個class一份,存在于方法區(qū)中(元空間)。

當類加載到內存中后,jvm就會將class常量池中的內容存放到運行時常量池中,經過解析(resolve)之后,也就是把符號引用替換為直接引用,解析的過程會去查詢全局字符串池,也就是下面的StringTable,以保證運行時常量池所引用的字符串與全局字符串池中所引用的是一致的。

字符串常量池

每個JVM中只有一份,存在于方法區(qū)中(堆)。

全局字符串池里的內容是在類加載完成,經過驗證,準備階段之后在堆中生成字符串對象實例,然后將該字符串對象實例的引用值存到string pool中(string pool中存的是引用值而不是具體的實例對象,具體的實例對象是在堆中開辟的一塊空間存放的)。

在HotSpot VM里實現的string pool功能的是一個StringTable類,它是一個哈希表,里面存的是駐留字符串(用雙引號括起來的引用而不是駐留字符串實例本身),也就是說在堆中的某些字符串實例被這個StringTable引用之后就等同被賦予了”駐留字符串”的身份。

運行時常量池和字符串常量池的關系

運行時常量池是一個統(tǒng)稱 也包括字符串常量池,但是字符串常量池放的只是字符串,而運行時常量池中,還包括類信息,屬性信息,方法信息,以及其他基礎類型的的常量池比如int,long等

jdk1.7之前,運行時常量池(包含著字符串常量池)都在方法區(qū),具體的hotspot虛擬機實現為永久代

jdk1.7階段,字符串常量池從方法區(qū)移到堆中,運行池常量池剩下的部分依舊在方法區(qū)(剩下類信息、屬性信息、方法信息等),同樣是hotspot中的永久代

jdk1.8, 方法區(qū)的實現從永久代變成了元空間,因此 字符串常量池依然在堆中,運行時常量池在方法區(qū),hotspot中的元空間(metaspace)

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 詳解java平臺解析協議相關備忘

    詳解java平臺解析協議相關備忘

    這篇文章主要介紹了詳解java平臺解析協議相關備忘,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 詳解springboot+mybatis多數據源最簡解決方案

    詳解springboot+mybatis多數據源最簡解決方案

    本篇文章主要介紹了詳解springboot+mybatis多數據源最簡解決方案,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Java?Spring?循環(huán)依賴解析

    Java?Spring?循環(huán)依賴解析

    這篇文章主要介紹了Java?Spring?循環(huán)依賴解析,Spring?現在其實是我們?Java?程序開發(fā)離不開的基礎框架,個人覺得除了?JDK?我們用得最多的?Java?中間件就是?Spring?,今天我們一起來學習一下?Spring?的循環(huán)依賴。下面詳細內容需要的小伙伴可以參考一下
    2022-02-02
  • Java截取中英文混合字符串的方法

    Java截取中英文混合字符串的方法

    這篇文章主要為大家詳細介紹了Java截取中英文混合字符串的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • Java連接MYSQL數據庫的實現步驟

    Java連接MYSQL數據庫的實現步驟

    以下的文章主要描述的是java連接MYSQL數據庫的正確操作步驟,在此篇文章里我們主要是以實例列舉的方式來引出其具體介紹
    2013-06-06
  • java網絡編程之群聊功能

    java網絡編程之群聊功能

    這篇文章主要為大家詳細介紹了java網絡編程之群聊功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Java泛型最全知識總結

    Java泛型最全知識總結

    面試被問到Java泛型怎么辦,有了這篇文章,讓你直接保送,文中有非常詳細的知識總結及相關代碼示例,需要的朋友可以參考下
    2021-06-06
  • springboot?整合?dubbo?的實現組聚合詳情

    springboot?整合?dubbo?的實現組聚合詳情

    這篇文章主要介紹了springboot整合dubbo的實現組聚合詳情,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-07-07
  • SpringMVC自定義參數綁定實現詳解

    SpringMVC自定義參數綁定實現詳解

    這篇文章主要介紹了SpringMVC自定義參數綁定實現詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Java結合EasyExcel構建復雜多級表頭

    Java結合EasyExcel構建復雜多級表頭

    在Java開發(fā)中,處理Excel文件時,構建復雜的多級表頭是一項常見且具有挑戰(zhàn)性的任務,下面小編就來和大家聊聊如何通過自定義方法實現多級表頭的構建吧
    2025-03-03

最新評論