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

JVM內(nèi)存模型知識點總結(jié)

 更新時間:2019年05月26日 14:02:03   投稿:laozhang  
在本篇文章里小編給大家分享了關(guān)于JVM內(nèi)存模型的學(xué)習(xí)心得以及相關(guān)知識點總結(jié),有興趣的朋友們跟著學(xué)習(xí)下。

內(nèi)存模型如下圖所示

堆是Java虛擬機所管理的內(nèi)存最大一塊。堆是所有線程共享的一塊內(nèi)存區(qū)域,在虛擬機啟動時創(chuàng)建。此內(nèi)存區(qū)域唯一的目的就是存放對象實例。所有的對象實例都在這里分配內(nèi)存

Java堆是垃圾收集器管理的主要區(qū)域。從內(nèi)存回收的角度來看,由于現(xiàn)在的垃圾收集器采用的是分代收集算法。所以,java堆又分為新生代和老年代。從內(nèi)存分配的角度來說,線程共享的java對中可能劃分出多個線程私有的fenp緩沖區(qū)(Thread Local Allocation Buffer)。

可以通過 -Xms、-Xmx分別控制堆初始化是最小堆內(nèi)存和最大堆內(nèi)存大小。

虛擬機棧

與程序計數(shù)器一樣,java虛擬機棧也是線程私有的,他的生命周期與線程相同。

虛擬機棧描述的是Java方法的執(zhí)行的內(nèi)存模型:每個方法在執(zhí)行的同時會創(chuàng)建一個棧楨(stack frame)用于存儲局部變量表、操作數(shù)棧、動態(tài)鏈表、方法出口等信息。每個方法從調(diào)用直至執(zhí)行完成的過程,就對應(yīng)著棧楨在虛擬機棧中入棧到出棧的過程。

虛擬機棧存儲的數(shù)據(jù)類型 局部變量表

存放的是編譯器可知得到各種基本數(shù)據(jù)類型

boolean、byte、char、short、int、float、long、double、對象引用(refrence類型,不等同于對象本身,一個指向?qū)ο蟮钠鹗純?nèi)存位置的引用指針) 操作數(shù)棧動態(tài)鏈表方法出口

常見異常在虛擬機規(guī)范中,對這個區(qū)域規(guī)定了兩種異常情況: 如果線程請求的棧深度大于虛擬機所允許的深度,將拋出StackOverflowError

如果虛擬機棧可以動態(tài)擴展,擴展時無法申請做夠的內(nèi)存,將會爬出OutOfMemorryError

本地方法棧

與虛擬機棧發(fā)揮的作用非常類似,他們之間的區(qū)別是虛擬機棧為虛擬機執(zhí)行java方法服務(wù),而本地方法棧則為虛擬機使用到的native方法服務(wù)。與虛擬機棧一樣,本地房發(fā)展區(qū)域也會拋出StackOverflowError,OutOfMemorryError異常。

方法區(qū)(1.8后該區(qū)域被廢棄)

方法區(qū)與java堆一樣,是各個線程所共享的,它用來存儲已被虛擬機加載的類信息、常量、靜態(tài)變量、即時編譯后的代碼等數(shù)據(jù)。

方法區(qū)是jvm提出的規(guī)范,而永久代就是方法區(qū)的具體實現(xiàn)。

java虛擬機對方法區(qū)的限制非常寬松,可以像堆一樣不需要連續(xù)的內(nèi)存可可選擇的固定大小外,還可以選擇不識閑垃圾收集,相對而言,垃圾收集行為在這邊區(qū)域是比較少出現(xiàn)的。

在方法區(qū)會報出 永久代內(nèi)存溢出的錯誤。而java1.8為了解決這個問題,就提出了meta space(元空間)的概念,就是為了解決永久代內(nèi)存溢出的情況,一般來說,在不指定 meta space大小的情況下,虛擬機方法區(qū)內(nèi)存大小就是宿主主機的內(nèi)存大小

程序計數(shù)器

程序計數(shù)器是一塊較小的內(nèi)存空間,他可以看做是當(dāng)前線程所執(zhí)行字節(jié)碼的行號指示器。在虛擬機的概念模型里,字節(jié)碼解釋器工作時就是通過改變這個計數(shù)器的值來選擇下一條將要執(zhí)行的字節(jié)碼指令。

由于JAVA虛擬機的多線程是通過多線程流轉(zhuǎn)切換并分配處理器執(zhí)行時間的方式來實現(xiàn)的。在任一一個確定的時刻,一個處理器都只會執(zhí)行一條線程中的指令。因此,為了線程切換后能恢復(fù)到正確的執(zhí)行位置,每條線程都需要一個獨立的程序計數(shù)器,各個線程的計數(shù)器之間互不影響,獨立存儲,我們稱該類內(nèi)存區(qū)域為線程私有

如果線程正在執(zhí)行一個Java方法,這個計數(shù)器記錄的是正在執(zhí)行的虛擬機字節(jié)碼指令的地址。

運行時常量池

運行時常量池是方法區(qū)的一部分。Class文件除了 有類的版本、字段、方法、接口等描述信息外,還有一項是常量池,用于存放編譯期生成的各種字面量和符號引用,這部分內(nèi)容在類加載后進入方法區(qū)的運行時常量池。

運行時常量池相對于Class文件常量池的另外一個重要特征是具備動態(tài)性.Java語言并不要求常量一定只有在編譯器才能產(chǎn)生,依舊是并非預(yù)置入Class文件中的常量池的內(nèi)容才能進入方法區(qū)運行時常量池

以上就是關(guān)于學(xué)習(xí)JVM內(nèi)存模型的知識點內(nèi)容總結(jié),感謝大家對腳本之家的支持。

相關(guān)文章

  • Java使用Tinify實現(xiàn)圖片無損壓縮(4M無損壓縮到1M)的方法

    Java使用Tinify實現(xiàn)圖片無損壓縮(4M無損壓縮到1M)的方法

    在當(dāng)今的數(shù)字化時代,圖片已成為網(wǎng)站、應(yīng)用和社交媒體中不可或缺的元素,然而,大尺寸的圖片不僅會增加頁面或者客戶端加載時間,還會占用大量的存儲空間,本文將詳細介紹如何利用Tinify壓縮圖片,并將其上傳至OSS,重點介紹圖片壓縮實現(xiàn)方式,需要的朋友可以參考下
    2024-08-08
  • 淺析Java中Split函數(shù)的用法技巧

    淺析Java中Split函數(shù)的用法技巧

    在java.lang包中也有String.split()方法,與.net的類似,都是返回是一個字符型數(shù)組,但使用過程中還有一些小技巧。以下我就為大家介紹,需要的朋友可以參考下
    2013-07-07
  • Java 8中HashMap的底層原理解析

    Java 8中HashMap的底層原理解析

    HashMap作為Java中常用的數(shù)據(jù)結(jié)構(gòu)之一,在JDK 1.8中經(jīng)過了一系列的優(yōu)化和改進,深入理解其底層原理,包括哈希算法、數(shù)組與鏈表結(jié)構(gòu)、紅黑樹的引入等,有助于更好地使用和理解HashMap的性能特性,這篇文章主要介紹了Java 8中HashMap的底層原理,需要的朋友可以參考下
    2023-11-11
  • Java無法獲取真實IP解決方案

    Java無法獲取真實IP解決方案

    這篇文章主要介紹了Java無法獲取真實IP解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • Java使用Queryable-pageable實現(xiàn)分頁效果

    Java使用Queryable-pageable實現(xiàn)分頁效果

    這篇文章主要為大家介紹了Java如何使用Queryable-pageable從而實現(xiàn)分頁效果,文中的示例代碼簡潔易懂,感興趣的小伙伴可以動手嘗試一下
    2022-06-06
  • Java讀寫txt文件時防止中文亂碼問題出現(xiàn)的方法介紹

    Java讀寫txt文件時防止中文亂碼問題出現(xiàn)的方法介紹

    這篇文章主要介紹了Java讀寫txt文件時防止中文亂碼問題出現(xiàn)的方法,同時需要注意系統(tǒng)默認的文本保存編碼的設(shè)置,需要的朋友可以參考下
    2015-12-12
  • 徹底解決IDEA中SpringBoot熱部署無效的問題(推薦)

    徹底解決IDEA中SpringBoot熱部署無效的問題(推薦)

    這篇文章主要介紹了徹底解決IDEA中SpringBoot熱部署無效的問題,本文給大家?guī)韱栴}原因分析通過圖文實例相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-09-09
  • J2SE基礎(chǔ)之在Eclipse中運行hello world

    J2SE基礎(chǔ)之在Eclipse中運行hello world

    本文的內(nèi)容非常的簡單,跟隨世界潮流,第一個Java程序輸出“Hell World!”。希望大家能夠喜歡
    2016-05-05
  • SpringCloud網(wǎng)關(guān)組件zuul實例解析

    SpringCloud網(wǎng)關(guān)組件zuul實例解析

    這篇文章主要介紹了SpringCloud網(wǎng)關(guān)組件zuul實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • Spingboot?JPA?CriteriaBuilder?如何獲取指定字段

    Spingboot?JPA?CriteriaBuilder?如何獲取指定字段

    這篇文章?主要介紹了Spingboot?JPA?CriteriaBuilder?如何獲取指定字段,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評論

会泽县| 北票市| 宝应县| 固安县| 天台县| 肇州县| 上饶县| 宁德市| 鄢陵县| 乌鲁木齐市| 博罗县| 肇源县| 油尖旺区| 临城县| 和政县| 崇仁县| 隆昌县| 怀化市| 宜良县| 万安县| 潍坊市| 连南| 安乡县| 南平市| 库伦旗| 恩平市| 靖州| 宁陕县| 黄龙县| 南靖县| 瑞安市| 荥经县| 利辛县| 英德市| 洪湖市| 息烽县| 明光市| 申扎县| 潜江市| 威海市| 宣城市|