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

Java基本數據類型存儲在JVM中的存儲位置介紹

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

Java基本數據類型存儲在JVM中的存儲位置

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

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

我在 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)變量存儲在堆中。

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

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

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

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

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

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

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

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

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

總結

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

相關文章

  • springboot添加AOP日志配置詳解

    springboot添加AOP日志配置詳解

    這篇文章主要介紹了springboot添加AOP日志配置詳解,日志是一種在軟件開發(fā)中常用的技術,用于記錄和跟蹤應用程序的運行過程,通過AOP日志,開發(fā)人員可以實時監(jiān)控應用程序的行為,包括方法的調用、參數的傳遞和返回值的獲取等,需要的朋友可以參考下
    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應用的時候,請求處理過程中發(fā)生錯誤是非常常見的情況。下面這篇文章主要給大家介紹了關于Spring Boot學習入門之統(tǒng)一異常處理的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。
    2017-09-09
  • SpringBoot構建ORM框架的方法步驟

    SpringBoot構建ORM框架的方法步驟

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

    java設計模式--建造者模式詳解

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

    70行Java代碼實現(xiàn)深度神經網絡算法分享

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

最新評論

出国| 蓬溪县| 石棉县| 龙陵县| 泰兴市| 武夷山市| 河西区| 舒城县| 长兴县| 漳浦县| 阳泉市| 皮山县| 洱源县| 兴和县| 黔南| 萨迦县| 施秉县| 三穗县| 江西省| 宜章县| 普宁市| 塔河县| 汪清县| 通道| 朝阳区| 密云县| 册亨县| 万安县| 吉林省| 独山县| 南阳市| 紫云| 河池市| 乌拉特后旗| 金堂县| 郎溪县| 绥江县| 高平市| 扶沟县| 剑河县| 沙田区|