衡阳派盒市场营销有限公司

您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網(wǎng)>源碼下載>java源碼下載>

分析java虛擬機內(nèi)存要如何分配

大小:0.5 MB 人氣: 2017-09-27 需要積分:2

  概述

  Java虛擬機在執(zhí)行Java程序的過程中會把它所管理的內(nèi)存劃分為若干個不同數(shù)據(jù)區(qū)域。這些區(qū)域都有各自的用途,以及創(chuàng)建和銷毀的時間,有的區(qū)域隨著虛擬機進程的啟動而存在,有些區(qū)域則是依賴用戶線程的啟動和結(jié)束而建立和銷毀。

  程序計數(shù)器

  程序計數(shù)器是一塊較小的內(nèi)存空間,它可以看作是當前線程所執(zhí)行的字節(jié)碼的行號指示器。在虛擬機的概念模型里,字節(jié)碼解釋器工作時就是通過改變這個計數(shù)器的值來選取下一條需要執(zhí)行的字節(jié)碼指令,分支,循環(huán),跳轉(zhuǎn),異常處理,線程恢復等基礎功能都需要依賴這個計數(shù)器來完成。 如果線程正在執(zhí)行的是一個Java方法,這個計數(shù)器記錄的是正在執(zhí)行的虛擬機字節(jié)碼指令的地址,如果正在執(zhí)行的是Native方法,這個計數(shù)器值則為空。此內(nèi)存區(qū)域是唯一個在Java虛擬機規(guī)范中沒有規(guī)定任何OurOfMemoryError情況的區(qū)域。

  虛擬機棧

  與程序計數(shù)器一樣,Java虛擬機棧也是線程私有的,它的生命周期與線程相同。虛擬機棧描述的是Java方法執(zhí)行的內(nèi)存模型,每個方法在執(zhí)行的同時都會創(chuàng)建一個棧幀(Stack Frame)用于存儲局部變量表,操作數(shù)棧,動態(tài)鏈接,方法出口等信息。每一個方法從調(diào)用直至執(zhí)行完成的過程,就對應著一個棧幀在虛擬機棧中入棧到出棧的過程。 局部變量表存放了編譯期可知的各種基本數(shù)據(jù)類型(boolean、byte、char、short、int、float、long、double)、對象引用(Object reference)和字節(jié)碼指令地址(returnAddress類型)。 在Java虛擬機規(guī)范中,對于此區(qū)域規(guī)定了兩種異常狀況:如果線程請求的棧深度大于虛擬機所允許的深度,將拋出StackOverflowError異常;如果虛擬機棧可以動態(tài)擴展,當擴展時無法申請到足夠的內(nèi)存時會拋出OutOfMemoryError異常。 對于32位的jvm,默認大小為256kb, 而64位的jvm, 默認大小為512kb,可以通過-Xss設置虛擬機棧的最大值。不過如果設置過大,會影響到可創(chuàng)建的線程數(shù)量。

  方法區(qū)

  方法區(qū)與Java堆一樣,是各個線程共享的內(nèi)存區(qū)域,它用于存儲已被虛擬機加載的類信息,常量,靜態(tài)變量,即時編譯器編譯后的代碼等數(shù)據(jù)。 根據(jù)Java虛擬機規(guī)范的規(guī)定,當方法區(qū)無法滿足內(nèi)存分配需求時,將拋出OutOfMemoryError異常。

  本地方法棧

  本地方法棧(Native Method Stacks)與虛擬機棧所發(fā)揮的作用非常類似,區(qū)別在于虛擬機棧為虛擬機執(zhí)行Java方法服務,而本地方法棧則是為虛擬機使用到的Native方法服務。

  Java堆

  Java堆(java heap)是Java虛擬機所管理的內(nèi)存中最大的一塊,它是被所有線程共享的一塊內(nèi)存區(qū)域,在虛擬機啟動時創(chuàng)建,此內(nèi)存區(qū)域的唯一目的就是存放對象實例,幾乎所有的對象實例都在這里分配內(nèi)存。 Java堆是垃圾收集管理的主要區(qū)域,因此很多時候也被稱為 “GC” 堆。 根據(jù)Java虛擬機規(guī)范的規(guī)定,Java堆可以處于物理上不連續(xù)的內(nèi)存空間中,只要邏輯上是連續(xù)的即可,就像我們的磁盤空間一樣。在實現(xiàn)時,既可以實現(xiàn)成固定大小的,也可以是可擴展的,不過當前主流的虛擬機都是按照可擴展來實現(xiàn)的。(通過-Xmx和-Xms控制)如果在堆中沒有內(nèi)存完成實例分配,并且堆也無法再擴展時,將會拋出OutOfMemoryError異常。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?
      百家乐注码技术打法| 立即博百家乐现金网| 娱乐场游戏| 百家乐试玩平台| TT百家乐官网现金网| 澳门百家乐游戏玩法| 丽景湾百家乐官网的玩法技巧和规则 | 百家乐官网平台注册送彩金| 威尼斯人娱乐场 澳门赌场| 三公百家乐官网在哪里可以玩| 永新县| 大发888备用网址大全| 百家乐赌博娱乐| 百家百家乐官网官网网站| 曲沃县| 壹贰博网站| 免费百家乐倍投| 蓝盾百家乐赌场| 立博百家乐官网的玩法技巧和规则| 百家乐官网tt娱乐| 百家乐追号| 百家乐翻天qvod| 御匾会百家乐官网的玩法技巧和规则 | 网上百家乐庄家有赌场优势吗| 百家乐官网真人百家乐官网赌博| 大发百家乐官网现金网| 88娱乐城网址tlyd| 免费百家乐追号工具| 百家乐筹码皇冠| 百家乐打印机分析| 缅甸百家乐网上投注| 做生意风水关键吗| 凱旋门百家乐官网的玩法技巧和规则 | 百家乐永利娱乐| 24山风水发几房| 在线百家乐官网策略| 最佳场百家乐官网的玩法技巧和规则 | 大地百家乐的玩法技巧和规则| 真人百家乐输钱惨了| 百家乐心得分享| 迷你百家乐官网的玩法技巧和规则|