日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAVA虚拟机运行数据区

發布時間:2024/2/28 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA虚拟机运行数据区 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.程序計數器

程序計數器是一段小的內存空間,可以把它看成當成線程所執行的字節碼的行號指示器。這個區域不會出現OUtOfMemoryError異常。

如果線程執行的是Java方法,則計數器記錄的是正在執行的虛擬機字節碼指令的地址;如果是Native方法,則計數器為空。

java虛擬機多線程是使用線程輪流切換并分配處理執行時間的方式來實現的,在任何一個確定的時刻,一個處理器都只會執行一條線程中的指令。為了線程切換后能夠恢復到正確的執行位置,每條線程都需要一套獨立的線程計數器

2.JAVA虛擬機棧

虛擬機棧也是線程私有的,它描述的是Java方法執行的內存模型。每個方法對應一個棧幀,存儲這個方法的各種信息。每次一個方法的執行,就對應一個棧幀在虛擬機棧入棧到出棧的過程。

如果線程請求的棧深度大于虛擬機所允許的深度,就會出現StackOverFlowException。如果允許動態擴展,在擴展的過程中,如果無法申請到足夠的內存,則會拋出OutOfMemoryException異常。

3.本地方法棧

與虛擬機棧相似,區別是虛擬機棧執行java方法,而本地虛擬機使用到的是native方法服務。

4..Java堆

Java堆是所有線程共享的內存區域,在虛擬機啟動的時候創建。此內存區域的目的是存放對象實例,幾乎所有對象實例都在這里分配內存。

Java堆是垃圾收集管理的主要區域。

5.方法區

方法區可以看作堆的邏輯部分,是各個線程共享的內存區域,存儲著虛擬機加載的常量,靜態變量,以及類信息。這個區域的內存回收的目標就是針對常亮池的回收和對類型的卸載,也是較為難處理的部分。

直接內存

直接內存并不是虛擬機運行時數據區的一部分,它是加入的NIO類引入的基于通道的存儲方式,它的原理是從用native函數庫得到一個堆外內存,然后用一個java類DirectByteBuffer來指向它,使得內存的容量增加。

超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生

總結

以上是生活随笔為你收集整理的JAVA虚拟机运行数据区的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。