精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

我們一起聊聊JVM是如何執行Java程序的

開發 前端
類加載系統目的很明確,就是將字節碼文件中的二進制數據準確地加載到JVM,從Class文件加載到內存 & 對數據進行校驗、轉換解析和初始化,最終形成可被虛擬機直接使用的Java使用類型。

前言

如果你對JVM一知半解,如果你想了解JVM的工作流程,如果你知道一些JVM面試題卻無法將知識點串聯起來,那么這篇文章非常適合你。

從面試題說起

這些面試題Javaer們應該都很熟悉,但是你知道這些面試題的背后嗎?

  • 你知道類加載機制嗎?
  • 什么是雙親委派機制?
  • 介紹一下JVM內存區域劃分
  • 堆為什么要分代設計?
  • 什么是內存的擔保機制?
  • 為什么Eden:S0:S1 比例是8:1:1?
  • 描述一下對象內存分配過程
  • 如何判斷對象已死?
  • 講一講內存模型?
  • 常用的JVM調優參數有哪些?
  • 常用的垃圾回收算法有哪些?
  • 常用的垃圾收集器有哪些?
  • ......

圖片圖片

如果你總是背了又忘,忘了又背,歸根結底,還是對JVM沒有一個系統的認識。

那么希望通過這篇文章,可以為你構建一個連貫的JVM框架。

JVM做了哪些事?

眾所周知,高級編程語言編寫的程序,最終要轉化為機器碼,才可以在計算機上運行。

圖片圖片

“翻譯”的工作

我們在編寫完一段Java代碼后,如果想要運行它,需要通過Java編譯器,將其編譯為JVM認識的字節碼文件。

圖片圖片

然后執行Java命令,這段代碼就會通過JVM運行。

圖片圖片

不僅僅“翻譯”

在這個過程中,JVM就充當了轉換的角色,負責將字節碼,翻譯成對應平臺上的機器指令。這樣的話,Java程序就可以在任何安裝了JVM的平臺上運行。這就是Java語言一次編寫到處運行的跨平臺特性。

圖片圖片

翻譯字節碼的工作,是由JVM的執行引擎完成。

在將字節碼翻譯為機器指令之前,JVM還有一個非常重要的工作,那就是將字節碼文件中的二進制數據準確的加載到JVM中。這個工作是由JVM的類加載系統完成,

另外,為了在運行時方便管理內存,JVM定義了一個專門的區域,也就是大名鼎鼎的運行時數據區。

圖片圖片

所以,類加載系統、運行時數據區、執行引擎,就構成了JVM平臺。

接下來,看一下它們是如何工作的。

在這之前,要對字節碼現有一個認識,畢竟它貫穿了Java代碼運行的整個流程。

Java虛擬機對Java編程語言一無所知,只知道一種特定的二進制格式,即類文件格式。類文件包含Java虛擬機指令(或字節碼)和符號表,以及其他輔助信息。

JVM 各部件如何協同工作?

類加載器先工作

類加載系統目的很明確,就是將字節碼文件中的二進制數據準確地加載到JVM,從Class文件加載到內存 & 對數據進行校驗、轉換解析和初始化,最終形成可被虛擬機直接使用的Java使用類型

執行Java命令后,Java虛擬機啟動,類加載系統就開始工作了。

圖片圖片

類加載系統首先會讀取指定的類文件,并遵循雙親委派機制進行加載。

圖片圖片

然后將文件中的常量池、字段、方法和指令等數據加載到JVM內存的共享區域方法區中。

圖片圖片

然后對其進行驗證,目的是為了確保類的正確性。比如版本號為52或更高時,不應該存在這個版本不支持的指令。

圖片圖片

或者標識類文件的魔術數字是不是cafebabe,這些完整性的檢查和約束都是非常有必要,就像我們自己開發的應用,也不可能隨便讓別人訪問一樣。

圖片圖片

驗證完成后,在方法區為類的靜態變量分配內存并設置默認值。

圖片圖片

緊接著,將常量池中表示對象的符號引用,指向到實際的內存地址,也就是直接引用。

圖片圖片

什么是符號引用呢?

符號引用是常量池中的類、方法、字段等指向的目標在字節碼文件中的靜態表示,當JVM運行時,需要將目標的靜態表示轉換成實際的內存指針,也就是直接引用。在這個例子中,如果JVM需要加載Object這個類,它會查找常量池中的#3(Class類型,指向#27),然后解析#27中的字符串java/lang/Object/為實際的類文件路徑,并加載這個類。

最后執行靜態代碼塊,為靜態變量設置初始值,類加載工作就算完成了。

整個加載過程就是面試被經常問到的類加載機制。

圖片圖片

那么問題來了:靜態變量為什么要先設置默認值,再設置初始值,知道的評論區留言。

執行引擎開始工作

執行引擎工作模式

靜態代碼塊被執行時,執行引擎就會處理這些指令。執行引擎有兩種工作模式:

  • 解釋執行
  • 即時編譯

解釋執行就是每次執行都會逐行解釋字節碼指令

圖片圖片

即時編譯是將熱點代碼,編譯成當前平臺的機器碼,并緩存下次就可以直接執行機器碼,這樣就可以提高執行效率。

圖片圖片

JVM通常采用解釋器與即時編譯器并存的混合模式。在程序啟動時,解釋器可以立即發揮作用,省去編譯時間;隨著程序運行時間的推移,JIT編譯器逐漸發揮作用,將越來越多的熱點代碼編譯為本地機器碼,以提高執行效率。

Main方法什么時候被執行?

靜態代碼塊執行完成后,JVM會繼續調用main方法。如果執行Java命令的字節碼文件中沒有main方法,JVM就會報錯,這個是JVM規范。

圖片圖片

運行時數據區域開始工作

執行引擎工作期間,會和運行時數據區域有大量的交互。

線程私有的空間

調用main方法時,會創建一個線程并在運行時數據區中分配線程私有的空間:棧幀以及程序計數器。

圖片圖片

程序計數器初始時會指向第一條指令, 然后隨著指令的執行而遞增。

圖片圖片

執行靜態變量賦值的指令時,會把整數推送到棧幀中的操作數棧,隨后賦值給靜態變量。

圖片圖片

在執行創建一個Object實例的指令時,如果Object Class未被加載,類加載器會啟動加載過程。然后在堆中分配一塊內存并初始化實例。

圖片圖片

大名鼎鼎的堆內存

分配內存這個過程,就涉及到“堆內存分代設計”、“對象內存分配過程”、“內存分配方式”等知識點了。

圖片圖片

如果對象過多導致空間不足,JVM就會通過垃圾回收來釋放一些空間。“如何確定對象是垃圾”、“使用哪個垃圾回收器”、“用了什么回收算法”就需要我們去了解。

圖片圖片

實例初始化后,會將對象的引用存儲到局部變量表中。這樣的話,線程就可以通過引用訪問到該對象。

圖片圖片

就這么一直工作

后續的代碼會延續這個流程,該加載類的加載類、該翻譯指令的翻譯、該分配內存的分配、該回收垃圾的回收,直到Java虛擬機停止工作。

圖片圖片

責任編輯:武曉燕 來源: Hi程序員
相關推薦

2023-07-14 12:28:07

JVM優化操作

2022-08-01 07:57:03

數組操作內存

2023-03-26 00:00:01

應用程序LLM策略

2023-12-29 08:29:15

QPS系統應用

2025-03-27 02:00:00

SPIJava接口

2022-07-29 08:17:46

Java對象內存

2022-12-06 08:12:11

Java關鍵字

2024-09-09 00:00:00

編寫技術文檔

2023-04-03 00:09:13

2023-04-26 07:30:00

promptUI非結構化

2024-02-20 21:34:16

循環GolangGo

2021-08-27 07:06:10

IOJava抽象

2022-10-08 00:00:05

SQL機制結構

2023-06-30 08:18:51

敏捷開發模式

2022-05-24 08:21:16

數據安全API

2023-08-10 08:28:46

網絡編程通信

2023-08-04 08:20:56

DockerfileDocker工具

2023-09-10 21:42:31

2024-11-27 16:07:45

2024-09-30 09:33:31

點贊
收藏

51CTO技術棧公眾號

亚欧美中日韩视频| 亚洲欧美综合久久久久久v动漫| av亚洲精华国产精华| 91av视频在线免费观看| www.中文字幕av| 欧美va在线| 亚洲最新视频在线观看| 日本一区二区三区四区在线观看| 国产乱淫片视频| 中日韩男男gay无套| 中文字幕日韩在线视频| 成人欧美精品一区二区| 日韩精品第一| 亚洲高清在线精品| 亚洲精品自在在线观看| 亚洲av综合色区无码一二三区| 另类图片国产| 欧美日韩电影在线观看| 久久亚洲AV无码专区成人国产| 电影中文字幕一区二区| 91官网在线免费观看| 成人一级生活片| av基地在线| 高清日韩电视剧大全免费| 国产精品电影网| 国产乡下妇女做爰毛片| 99久久99久久精品国产片果冰| 欧美精品一区二区三区蜜桃视频| 三级av免费观看| 竹内纱里奈兽皇系列在线观看| 亚洲视频综合在线| 久久国产一区| 亚洲成人第一区| 国内久久精品视频| 国产精品一区电影| www.色国产| 亚洲茄子视频| 久久久久成人网| 精品国产欧美日韩不卡在线观看| 欧美天天综合| 亚洲欧美综合精品久久成人| 日韩成人av一区二区| 精品视频在线播放一区二区三区| 欧美在线一区二区| www.国产区| 欧美成人黑人| 日韩欧美在线网址| 18禁免费观看网站| 看黄在线观看| 图片区小说区区亚洲影院| 日韩人妻一区二区三区蜜桃视频| 免费的黄网站在线观看| 中文乱码免费一区二区| 日韩高清三级| 超碰免费在线| 国产精品欧美精品| 亚洲精美视频| 老司机在线视频二区| 综合久久综合久久| 黄色录像特级片| 日日夜夜天天综合入口| 亚洲中国最大av网站| 丁香六月激情网| 川上优av中文字幕一区二区| 欧美日韩国产在线看| 欧美黄色免费影院| 激情亚洲影院在线观看| 欧美日韩亚洲国产综合| 亚洲怡红院在线| 日本免费精品| 亚洲精品久久久久久下一站 | 免费污视频在线| av资源中文在线| 国产人与禽zoz0性伦| 97超碰在线人人| 九一精品在线观看| 2021av在线| 国产精品美女久久久久久| 一区二区在线观| 超碰在线最新| 亚洲国产精品嫩草影院| 69堂免费视频| 国产极品嫩模在线观看91精品| 欧美日韩午夜影院| 伦伦影院午夜理论片| 北条麻妃一区二区三区在线观看| 亚洲精品videossex少妇| 亚洲最大成人网站| 欧美oldwomenvideos| 欧美成人免费全部| 黄色大片网站在线观看| 日本不卡高清视频| 99国产在线观看| 麻豆导航在线观看| 最爽无遮挡行房视频在线| 欧美亚洲专区| 91久久久久久久久久久久久| 女人18毛片一区二区三区| 国产亚洲欧美一区在线观看| 看一级黄色录像| jk漫画禁漫成人入口| 91精品国产综合久久久久久漫画| jlzzjizz在线播放观看| 久久人人88| 欧美性受xxxx黑人猛交| 91免费视频播放| 91蜜桃视频在线| 特级西西444| 视频一区在线免费看| 欧美一级二级在线观看| 国精品无码人妻一区二区三区| 国产精品7m凸凹视频分类| 97久久精品人搡人人玩| 国产精品丝袜黑色高跟鞋| 性国产高清在线观看| 国产九九精品| 91情侣在线视频| 国产无套粉嫩白浆在线2022年 | 舐め犯し波多野结衣在线观看| 91精品蜜臀一区二区三区在线| 国产a级全部精品| 免费观看国产视频| 亚洲欧美乱综合| 男女污污的视频| 欧美天堂社区| 欧美精品久久久久| 国产一区二区在线播放视频| 久久久www免费人成精品| 久久这里只有精品18| 91麻豆精品一二三区在线| 亚洲最新av网址| 九九热在线视频播放| 国产成人一级电影| 在线免费观看成人网| 成人国产网站| 亚洲最新中文字幕| 337p粉嫩色噜噜噜大肥臀| 99精品视频在线观看| 国产玉足脚交久久欧美| 一区二区网站| 久久91亚洲人成电影网站| 国产免费的av| 自拍偷拍亚洲激情| 亚洲精品成人在线播放| 精品理论电影在线| 日韩美女视频中文字幕| 少妇激情av一区二区| 综合欧美亚洲日本| 国产婷婷色一区二区三区| 51午夜精品| 成人在线播放免费观看| 欧美日本一区二区三区四区| 美国美女黄色片| 热久久国产精品| 亚洲春色在线视频| 日韩午夜视频在线| xvideos亚洲人网站| 国产精品乱码一区二区| 一色桃子久久精品亚洲| 久久精品久久99| 亚洲精品一二三区区别| 91久久久国产精品| av香蕉成人| 亚洲精品在线观看视频| 日韩手机在线观看| 91社区在线播放| 无码少妇一区二区三区芒果| 超碰成人久久| 91久久精品国产91性色| 久色国产在线| 亚洲精品综合久久中文字幕| 欧美一级做a爰片免费视频| 国产精品女主播av| 视频区 图片区 小说区| 亚洲一级二级| 日本在线播放不卡| 青青青国产精品| 欧美激情2020午夜免费观看| 欧洲免费在线视频| 欧美日韩视频一区二区| 成熟的女同志hd| 26uuu国产日韩综合| 中文av一区二区三区| 欧美成人首页| 免费成人av网站| 欧美男女视频| 性欧美激情精品| 1024视频在线| 欧美精品一区男女天堂| 91视频在线视频| 亚洲精品亚洲人成人网在线播放| 日本少妇xxxx| 久久99久久99小草精品免视看| 欧美人与动牲交xxxxbbbb| 欧美一区自拍| 亚洲a在线播放| 日本精品不卡| 欧美猛少妇色xxxxx| 黄网在线观看| 精品欧美一区二区三区精品久久| 免费观看日批视频| 亚洲一级二级在线| 一级黄色片网址| 成人高清视频免费观看| 在线能看的av网站| 亚洲影视在线| 日本福利视频网站| 日韩www.| 欧美精品v日韩精品v国产精品| 精品一区91| 国产精品wwwwww| av电影在线地址| 色天天综合久久久久综合片| 亚州欧美一区三区三区在线 | 91久久国产综合久久91精品网站| 国产资源在线观看入口av| 俺去了亚洲欧美日韩| 国产精品久久久久久无人区| 一区二区影视| 欧美一区二区三区在线播放| 亚洲一区二区三区在线免费| 国产精品久久久久久久7电影| free性m.freesex欧美| 久久影视电视剧免费网站清宫辞电视| 国产综合在线观看| 亚洲激情小视频| 成人午夜福利视频| 欧美一区二区视频网站| 蜜臀99久久精品久久久久小说 | 亚洲视频三区| 91色精品视频在线| 国产成人精品一区二区三区免费 | 亚洲理论电影在线观看| 久久久久av| 一区二区三区四区| 日韩成人三级| 亚洲国产一区在线| 日本女优一区| 亚洲欧美久久234| 成人影院天天5g天天爽无毒影院| 欧美久久电影| 国产剧情在线观看一区| 欧美理论一区二区| 久久av免费看| 欧美一区2区三区4区公司二百| 青青草这里只有精品| 精品国产乱码久久久久久88av| 成人午夜大片| 精品欧美一区二区精品久久| 久久免费视频66| 久久久久久亚洲精品不卡4k岛国| 三级精品视频| 欧美精品尤物在线| 国产精品一区二区三区av麻| 日本午夜精品一区二区| 成人激情开心网| 一区二区三区偷拍| 婷婷综合社区| 男人添女人下部视频免费| 亚洲先锋成人| 无罩大乳的熟妇正在播放| 性娇小13――14欧美| 国产第一页视频| 美女视频黄 久久| 91插插插影院| 成人国产电影网| 免费污网站在线观看| 国产精品美女一区二区在线观看| 国产探花在线视频| 一区二区三区四区视频精品免费| 国产无遮挡又黄又爽| 欧美日韩免费看| 国产又黄又猛又粗又爽| 欧美无砖专区一中文字| 国产一区二区三区中文字幕| 欧美成人伊人久久综合网| 亚欧洲精品视频| 日韩国产精品一区| 永久免费在线观看视频| 欧美人在线观看| 成人动漫一区| 91在线观看欧美日韩| 欧洲亚洲视频| 一区二区三区av| 欧美精品午夜| 免费黄色一级网站| 国产成人aaa| 色综合99久久久无码国产精品| 1024成人网色www| 国产精品自拍视频一区| 欧美三电影在线| 国产91久久久| 最近2019年中文视频免费在线观看 | 精品国偷自产一区二区三区| 久热精品视频| 精品人妻在线视频| 国产精品私人影院| 精品久久免费视频| 欧美群妇大交群中文字幕| 欧美一级免费片| 精品久久久av| 成人做爰视频www网站小优视频| 亚洲综合成人婷婷小说| 久久99国产精品视频| 美脚丝袜脚交一区二区| 另类综合日韩欧美亚洲| 一区二区三区免费在线观看视频| 成人免费在线播放视频| 青青视频在线免费观看| 精品久久久久久最新网址| 在线看免费av| 热re99久久精品国产66热| 亚洲天堂中文字幕在线观看| 亚洲视频sss| 日韩在线一二三区| 国产高清成人久久| 一区二区三区在线视频免费| 中国老头性行为xxxx| 日韩精品视频中文在线观看| 2021国产在线| 国产在线观看不卡| 神马影视一区二区| 鲁一鲁一鲁一鲁一澡| 丰满岳乱妇一区二区三区| 搜索黄色一级片| 欧美日韩在线精品一区二区三区激情 | 高清在线成人网| 1024手机在线视频| 欧美精品1区2区| 91啦中文在线| 国产精品视频yy9099| 亚洲精品无吗| 日韩精品视频一区二区在线观看| 成人午夜在线视频| 久久精品国产av一区二区三区| 欧美一区二区三区日韩| 黄色网页在线免费观看| 国产综合福利在线| 久久麻豆精品| www.99av.com| 亚洲国产岛国毛片在线| 正在播放亚洲精品| 色播久久人人爽人人爽人人片视av| 69堂精品视频在线播放| 日韩一二三区不卡在线视频| 日日噜噜夜夜狠狠视频欧美人| 香蕉网在线播放| 色婷婷国产精品综合在线观看| 精品三级久久久久久久电影聊斋| 992tv成人免费影院| 乱亲女h秽乱长久久久| 黄色一级视频在线播放| bt7086福利一区国产| 欧美三级一区二区三区| 日韩h在线观看| 国产精品高清乱码在线观看| 视频在线99| 国产一区视频在线看| 精品处破女学生| 日韩国产欧美精品在线| 日韩电影免费观看高清完整版| 日韩欧美精品一区二区| 麻豆成人久久精品二区三区小说| 久久国产高清视频| 91精品国产全国免费观看| 青青青草视频在线| 国产视频在线观看一区| 免费在线成人| 美国黄色特级片| 欧美一区二区三区视频免费播放| 女同视频在线观看| 久久综合九色综合网站| 麻豆久久一区二区| 麻豆91精品91久久久| 日韩精品电影网| 黄色精品视频网站| 亚洲中文字幕无码一区二区三区| 成人18视频在线播放| 无码人妻av一区二区三区波多野 | 日韩一区国产在线观看| 久久国产乱子精品免费女| 青娱乐在线视频免费观看| 国产视频精品va久久久久久| 欧美videos粗暴| 久久综合久久久久| 国产日韩综合av| 亚洲成人第一区| 国产精品久久一区主播| 欧美日本免费| 午夜在线观看一区| 欧美tk丨vk视频| 91精品韩国| 国产午夜福利在线播放| 国产精品精品国产色婷婷| 欧美熟女一区二区| 国产精品视频播放| 亚洲国内精品| 午夜国产福利一区二区| 亚洲毛片在线免费观看| 国产精品国产三级在线观看|