最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java基本數(shù)據(jù)類型存儲在JVM中的存儲位置介紹

 更新時間:2023年07月31日 11:31:15   作者:普通網(wǎng)友  
這篇文章主要介紹了Java基本數(shù)據(jù)類型存儲在JVM中的存儲位置,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

Java基本數(shù)據(jù)類型存儲在JVM中的存儲位置

我們都知道虛擬機棧來存儲通過棧幀的形式來存儲每一個方法,堆來存儲所有對象實例和數(shù)組。

而對基本數(shù)據(jù)類型,即可能聲明在方法的局部變量中,也可能聲明在類的成員中,這就造成并沒有明確的規(guī)定來說明基本數(shù)據(jù)類型到底是存儲在堆中還是棧中。

我在 SO 上尋找到了答案

Simplistic answer: it depends on where the variable is declared, not on its type.
Local variables are stored on the stack. Instance and static variables are stored on the heap.

簡單來說:這取決于變量的聲明位置,而不是它的類型。

局部變量存儲在棧中,實例變量和靜態(tài)變量存儲在堆中。

也就是說,基本數(shù)據(jù)類型如果聲明在方法內(nèi),那么它就存儲在棧中,如果聲明在類的成員或聲明為 static 那么就存儲在堆中。

參考鏈接:Where does the JVM store primitive variables?

基本數(shù)據(jù)類型的成員變量放在jvm得哪塊內(nèi)存區(qū)域里?

java虛擬機棧是線程私有的,生命周期跟線程相同,每個方法調(diào)用的時候都會創(chuàng)建一個棧幀用于存儲局部變量表,操作數(shù)棧,動態(tài)鏈接,方法出口等信息。

每個方法調(diào)用的過程,就代表了一個棧幀在虛擬機棧中入棧到出棧的過程,當進入一個方法時,這個方法在棧中需要分配多大的內(nèi)存都是完全確定的,方法運行時不會改變局部變量表的大小——《深入理解java虛擬機第二版》

很多java程序員一開始就被網(wǎng)上的一些教程所誤導:基本數(shù)據(jù)類型放在棧中,數(shù)組和類的實例放在堆中。 這個說法不準確,事實上,如上面的全局變量i,他是存放在java堆中。因為它不是靜態(tài)的變量,不會獨立于類的實例而存在,而該類實例化之后,放在堆中,當然也包含了它的屬性i。        

如果在方法中定義了int i = 0;則在局部變量表創(chuàng)建了兩個對象:引用i和0。

這兩個對象都是線程私有(安全)的。

比如定義了int[] is = new int[10]. 定義了兩個對象,一個是is引用,放在局部變量表中,一個是長度為10的數(shù)組,放在堆中,這個數(shù)組,只能通過is來訪問,方法結(jié)束后出棧,is被銷毀,根據(jù)java的根搜索算法,判斷數(shù)組不可達,就將它銷毀了。

總結(jié)

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

相關(guān)文章

  • springboot添加AOP日志配置詳解

    springboot添加AOP日志配置詳解

    這篇文章主要介紹了springboot添加AOP日志配置詳解,日志是一種在軟件開發(fā)中常用的技術(shù),用于記錄和跟蹤應(yīng)用程序的運行過程,通過AOP日志,開發(fā)人員可以實時監(jiān)控應(yīng)用程序的行為,包括方法的調(diào)用、參數(shù)的傳遞和返回值的獲取等,需要的朋友可以參考下
    2023-10-10
  • Windows系統(tǒng)下如何查找JDK的安裝路徑

    Windows系統(tǒng)下如何查找JDK的安裝路徑

    這篇文章主要介紹了Windows系統(tǒng)下如何查找JDK的安裝路徑,文中介紹了三種方法,分別是通過命令行檢查、使用verbose選項查找jre目錄、以及查看環(huán)境變量,需要的朋友可以參考下
    2025-03-03
  • Spring Boot學習入門之統(tǒng)一異常處理詳解

    Spring Boot學習入門之統(tǒng)一異常處理詳解

    我們在做Web應(yīng)用的時候,請求處理過程中發(fā)生錯誤是非常常見的情況。下面這篇文章主要給大家介紹了關(guān)于Spring Boot學習入門之統(tǒng)一異常處理的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2017-09-09
  • SpringBoot構(gòu)建ORM框架的方法步驟

    SpringBoot構(gòu)建ORM框架的方法步驟

    本文主要介紹了SpringBoot構(gòu)建ORM框架的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Java實現(xiàn)大文件的分片上傳與下載(springboot+vue3)

    Java實現(xiàn)大文件的分片上傳與下載(springboot+vue3)

    這篇文章主要為大家詳細介紹了java基于springboot+vue3如何大文件的分片上傳與下載,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2023-06-06
  • 深入理解Netty?FastThreadLocal優(yōu)缺點及實現(xiàn)邏輯

    深入理解Netty?FastThreadLocal優(yōu)缺點及實現(xiàn)邏輯

    本文以線上詭異問題為切入點,通過對比JDK ThreadLocal和Netty FastThreadLocal實現(xiàn)邏輯以及優(yōu)缺點,并深入解讀源碼,由淺入深理解Netty FastThreadLocal
    2023-10-10
  • SWT(JFace)體驗之Icon任我變

    SWT(JFace)體驗之Icon任我變

    SWT(JFace)體驗之Icon任我變
    2009-06-06
  • Java高效映射工具MapStruct的使用示例

    Java高效映射工具MapStruct的使用示例

    MapStruct 是一個 Java 注解處理器,用于在不同 Java Beans 或數(shù)據(jù)傳輸對象(DTOs)之間自動生成類型安全的映射代碼,這是一個編譯時映射框架,意味著它利用注解在編譯時生成代碼,本文將給大家介紹一下Java注解處理器MapStruct的使用示例,需要的朋友可以參考下
    2023-12-12
  • java設(shè)計模式--建造者模式詳解

    java設(shè)計模式--建造者模式詳解

    這篇文章主要介紹了Java設(shè)計模式之建造者模式,結(jié)合具體實例形式分析了建造者模式的概念、原理、實現(xiàn)方法與相關(guān)使用注意事項,需要的朋友可以參考下
    2021-07-07
  • 70行Java代碼實現(xiàn)深度神經(jīng)網(wǎng)絡(luò)算法分享

    70行Java代碼實現(xiàn)深度神經(jīng)網(wǎng)絡(luò)算法分享

    這篇文章主要介紹了70行Java代碼實現(xiàn)深度神經(jīng)網(wǎng)絡(luò)算法分享,涉及神經(jīng)網(wǎng)絡(luò)的計算過程,神經(jīng)網(wǎng)絡(luò)的算法程序?qū)崿F(xiàn),多層神經(jīng)網(wǎng)絡(luò)完整程序?qū)崿F(xiàn)等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以參考下。
    2017-11-11

最新評論

潢川县| 屏东县| 当雄县| 无锡市| 宁阳县| 蓝山县| 区。| 全椒县| 砀山县| 岳西县| 和龙市| 桦川县| 呼玛县| 襄垣县| 鲜城| 濮阳市| 广灵县| 庆城县| 樟树市| 浦江县| 永宁县| 贵溪市| 象山县| 中方县| 龙里县| 葫芦岛市| 专栏| 固原市| 南宫市| 安溪县| 云龙县| 渝北区| 卓资县| 方城县| 东乡族自治县| 福海县| 洛浦县| 灵璧县| 宝清县| 天镇县| 沙河市|