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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java编程 内存_Java编程技术之浅析JVM内存

發布時間:2023/12/9 java 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java编程 内存_Java编程技术之浅析JVM内存 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JVM

JVM->Java Virtual Machine:Java虛擬機,是一種用于計算設備的規范,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。

基本認知:

1.JVM是用于運行Java代碼的假象計算機,主要有一套字節碼指令集,一組寄存器,一個棧,一個垃圾回收,堆 和 一個存儲方法域。

2.JVM運行在操作系統之上,與硬件沒有直接的交互。

Java程序執行過程:

1.編譯->源文件由編譯器編譯成字節碼[ByteCode] Java 源文件—->編譯器—->字節碼文件

2.運行->字節碼由java虛擬機解釋運行字節碼文件—->JVM—->機器碼

Java類的加載步驟:

1.加載->主要是完成3個階段的提交:通過類的全限定名來獲取定義類的二進制字節流

將字節流所代表的靜態存儲結構轉化為方法區的運行時數據結構

在內存中生成一個代表這個類的java.lang.Class對象,作為方法區這個類的各種數據的訪問入口。

2.驗證->四個階段的檢驗動作:文件格式驗證

元數據驗證

字節碼驗證

符號引用驗證

3.準備->為類變量(static)分配內存并設置類變量的初始值。

4.解析->將常量池內的符號引用轉為直接的引用

5.初始化->按照static塊和static變量在文件中的出現順序,合并到()方法中。實例變量由()函數賦值。

JVM線程實體:

JVM線程->程序執行過程中的一個線程實體,JVM 允許一個應用并發執行多個線程。

從此,我們應該意識到,在Java中,當提到線程就應該是指JVM線程和Java線程。其中JVM線程指的是Hotspot JVM 后臺運行的系統線程,而且Hotspot JVM 中的 Java 線程與原生操作系統線程有直接的映射關系。

??[注意事項]:

[1].當線程本地存儲、緩沖區分配、同步對象、棧、程序計數器等準備好以后,就會創建一個操作系統原生線程。

[2].Java 線程結束,原生線程隨之被回收。操作系統負責調度所有線程,并把它們分配到任何可用的 CPU 上。

[3].當原生線程初始化完畢,就會調用 Java 線程的 run() 方法。當線程結束時,會釋放原生線程和 Java 線程的所有資源

特別需要知道的是,Hotspot JVM 后臺運行的系統線程主要是:

虛擬機線程->VM thread:等待 JVM 到達安全點操作出現。這些操作必須要在獨立的線程里執行,因為當堆修改無法進行時,線程都需要 JVM 位于安全點。這些操作的類型有:stop-theworld垃圾回收、線程棧 dump、線程暫停、線程偏向鎖(biased locking)解除。

周期性任務線程->負責定時器事件(也就是中斷),用來調度周期性操作的執行

GC線程->支持 JVM 中不同的垃圾回收活動

編譯器線程->在運行時將字節碼動態編譯成本地平臺相關的機器碼

信號分發線程->程接收發送到 JVM 的信號并調用適當的 JVM 方法處理

JVM內存

本文由博客一文多發平臺 OpenWrite 發布!

總結

以上是生活随笔為你收集整理的java编程 内存_Java编程技术之浅析JVM内存的全部內容,希望文章能夠幫你解決所遇到的問題。

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