亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java運行時數(shù)據(jù)區(qū)劃分原理解析

 更新時間:2020年04月07日 08:58:46   作者:Chsoul''S Blog  
這篇文章主要介紹了Java運行時數(shù)據(jù)區(qū)劃分原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

Java中對象創(chuàng)建,內(nèi)存分配,垃圾回收的權(quán)力交給了虛擬機,這其中有利也有弊,程序員也減輕了負擔(dān),但是如果不熟悉Java的內(nèi)存區(qū)域劃分,一旦出現(xiàn)內(nèi)存溢出和泄漏,將會很難定位問題的根源,這就有必要了解Java的運行時數(shù)據(jù)區(qū)劃分。

方法區(qū)(Method Area)

是由各個線程共享的內(nèi)存區(qū)域,用來存儲已被虛擬機加載的類型信息、常量、靜態(tài)變量、即時編譯器編譯后的代碼緩存等數(shù)據(jù)。

堆(Heap)

Java虛擬機所管理的一塊最大的內(nèi)存區(qū)域,由所有的線程共享的一塊內(nèi)存區(qū)域;堆內(nèi)存在虛擬機啟動時創(chuàng)建,用來存放對象實例,數(shù)組;Java堆是垃圾收集器管理的內(nèi)存,在G1垃圾收集器之前,堆內(nèi)存普遍采用分代設(shè)計思想,新生代,老年代,永久代...,現(xiàn)代垃圾收集器已經(jīng)不主張采用分代設(shè)計理論概念;Java堆既可以被實現(xiàn)成固定大小的,也可以是可擴展的,不過當(dāng)前主流的Java虛擬機都是按照可擴展來實現(xiàn)的(通過參數(shù)-Xmx和-Xms設(shè)定)。如果在Java堆中沒有內(nèi)存完成實例分配,并且堆也無法再擴展時,Java虛擬機將會拋出OutOfMemoryError異常。

虛擬機棧(VM Stack)

虛擬機棧為線程私有,每個方法執(zhí)行時,虛擬機都會創(chuàng)建棧幀存儲局部變量表(包含Java的基本數(shù)據(jù)類型,以及對象的引用,非對象本身)、操作數(shù)棧、動態(tài)連接方法出口等信息,方法從被調(diào)用到執(zhí)行結(jié)束,對應(yīng)著一個棧幀在虛擬機中從入棧到出棧的過程。基本數(shù)據(jù)類型在局部變量表中的存儲空間以局部變量槽(slot)來表示,64位長度的long和double占用兩個變量槽,其余數(shù)據(jù)類型占用一個,局部變量表所需要的內(nèi)存空間在編譯期完成,因此進入方法時,每個方法在棧幀需要分配的空間時確定的,運行期間并不會改變局部變量表的大小(即變量槽的數(shù)量),每個槽的空間大小根據(jù)虛擬機的實現(xiàn)而定。
如果線程請求的棧深度大于虛擬機所允許的深度,將拋出StackOverflowError異常;如果Java虛擬機棧容量可以動態(tài)擴展[2],當(dāng)棧擴展時無法申請到足夠的內(nèi)存會拋出OutOfMemoryError異常。

本地方法棧(Native Method Stack)

類似于虛擬機棧的作用,區(qū)別在于虛擬機棧用來執(zhí)行Java的方法,本地方法棧為虛擬機使用到的笨的方法服務(wù)。

程序計數(shù)器(Program Counter Register)

是Java內(nèi)存中較小的一部分內(nèi)存空間,由每個Java線程所獨享,可以理解為當(dāng)前線程執(zhí)行的字節(jié)碼行號指示器,Java中程序的執(zhí)行往往是多線程的,在某一個確切的時刻,一個處理器內(nèi)核直會執(zhí)行線程中的一條指令,每個線程都是在不停的切換執(zhí)行,為了保證切換后可以執(zhí)行到正確的位置,每個線程都要有一個獨立的程序計數(shù)器,每個計數(shù)器之間互不影響。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用JPA自定義id策略避免主鍵自增

    使用JPA自定義id策略避免主鍵自增

    這篇文章主要介紹了使用JPA自定義id策略避免主鍵自增問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Java接收text/event-stream格式數(shù)據(jù)的詳細代碼

    Java接收text/event-stream格式數(shù)據(jù)的詳細代碼

    這篇文章主要介紹了java接收text/event-stream格式數(shù)據(jù),本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • java 利用HttpClient PostMethod提交json數(shù)據(jù)操作

    java 利用HttpClient PostMethod提交json數(shù)據(jù)操作

    這篇文章主要介紹了java 利用HttpClient PostMethod提交json數(shù)據(jù)操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • 淺析JAVA中toString方法的作用

    淺析JAVA中toString方法的作用

    以下是對在JAVA中toString方法的作用進行了詳細的分析介紹,需要的朋友可以參考下
    2013-07-07
  • Spring Cloud Feign統(tǒng)一設(shè)置驗證token實現(xiàn)方法解析

    Spring Cloud Feign統(tǒng)一設(shè)置驗證token實現(xiàn)方法解析

    這篇文章主要介紹了Spring Cloud Feign統(tǒng)一設(shè)置驗證token實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • 將Java程序包打包為.exe文件的操作步驟

    將Java程序包打包為.exe文件的操作步驟

    將Java程序打包為為.exe文件分為倆個步驟:將Java程序打包成Jar包和打包為.exe文件,文中通過圖文結(jié)合的方式給大家講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下
    2024-06-06
  • Java中正則表達式的使用和詳解(下)

    Java中正則表達式的使用和詳解(下)

    這篇文章主要介紹了Java正則表達式的使用和詳解(下)的相關(guān)資料,包括常用正則表達式和正則表達式語法,非常不錯,具有參考借鑒價值,需要的的朋友參考下吧
    2017-04-04
  • Java集合框架中迭代器Iterator解析

    Java集合框架中迭代器Iterator解析

    這篇文章主要為大家簡單介紹了Java集合框架中迭代器Iterator的相關(guān)資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • MyBatis-Flex實現(xiàn)多表聯(lián)查(自動映射)

    MyBatis-Flex實現(xiàn)多表聯(lián)查(自動映射)

    我們可以輕松的使用 Mybaits-Flex 鏈接任何數(shù)據(jù)庫,本文主要介紹了MyBatis-Flex實現(xiàn)多表聯(lián)查(自動映射),具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • Java利用Reflect實現(xiàn)封裝Excel導(dǎo)出工具類

    Java利用Reflect實現(xiàn)封裝Excel導(dǎo)出工具類

    這篇文章主要為大家詳細介紹了Java如何利用Reflect實現(xiàn)封裝Excel導(dǎo)出工具類,文中的實現(xiàn)方法講解詳細,具有一定的借鑒價值,需要的可以參考一下
    2022-11-11

最新評論