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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

JVM实战与原理--前言及索引

發布時間:2025/3/12 编程问答 12 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JVM实战与原理--前言及索引 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

JVM實戰與原理


?


大綱

在Java入門課中,我們編寫HelloWorld.java文件,用命令行運行javac后生成HelloWorld.class,之后用java命令運行HelloWorld.class文件,從而在控制臺打印出HelloWorld.

在這幾步中,你應該提出以下幾個問題

1. 為什么需要用javac來生成.class文件?

2. .class文件是什么?

3. 為什么用java命令運行.class文件后,就能開始執行代碼?

4. 運行過程中,我們在.java文件中定義的變量、實例、方法是怎么被存儲和調用的?

5. 內存中存儲的數據是如何被回收的?

了解了JVM,我們就對上面的問題有答案了


我們按以下順序進行敘述

JVM實戰與原理---編譯

JVM實戰與原理---class文件結構

JVM實戰與原理---類加載機制

JVM實戰與原理---內存區域分配

JVM實戰與原理---內存回收策略

JVM實戰與原理---字節碼執行引擎

?

啟用虛擬機,虛擬機通過設計的參數對內存進行分配。

java文件通過編譯器生成Class文件,虛擬機通過雙親委派機制對類進行加載,加載的類元信息放入方法區,同時在堆生成對應的Class對象

虛擬機啟用多個任務線程,包含

Main線程:用于執行main方法

Attach Listener 、Signal Dispatcher:用于接收并執行JVM命令

Finalizer線程:在垃圾收集前,調用對象的finalize()方法

Main線程會執行main方法,此時main方法會生成對應的棧幀,并入棧。

如果main方法中實例化對象,則堆中會存儲該實例對象,堆空間會通過垃圾收集器進行垃圾收集

如果main方法中調用了方法,則會生成對應棧幀入棧

如果main方法中啟用了新線程,則會生成新的棧與PC

?

總結

以上是生活随笔為你收集整理的JVM实战与原理--前言及索引的全部內容,希望文章能夠幫你解決所遇到的問題。

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