999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Java虛擬機實現原理分析

2020-03-02 07:42:44溫立輝
科技創新與應用 2020年5期
關鍵詞:跨平臺

溫立輝

摘? 要:針對虛擬機的底層實現原理及相關實現過程,討論了Java語言的跨平臺原理以及相關工作機制,分析了JVM底層各數據區內存管理過程,闡述了JVM在Java語言中的核心作用以及重要地位。

關鍵詞:JVM;跨平臺;內存管理;解釋器;類加載

中圖分類號:TP312? ? ? ? ?文獻標志碼:A? ? ? ? ?文章編號:2095-2945(2020)05-0053-02

Absrtact: This paper discusses the cross platform principle and related working mechanism of Java language, analyzes the memory management process of each data area in the bottom layer of JVM, and expounds the core role and important position of JVM in Java language.

Keywords: JVM; cross platform; memory management; interpreter; class loading

1 概述

Java語言的閃耀點是其跨平臺特性,使其征服了網絡編程界,而Java虛擬機以其獨特的作用及強大的功能支撐起Java平臺的強大地位,Java虛擬機是連接應用程序與系統平臺及機器硬件的橋梁,是Java語言的核心基石。

2 Java平臺分層原理

1995年SUM公司正式對外發布了第一個版本的JDK后,在編程界引起了極大的反響,隨后幾年風靡編程領域,從此之后各類面向對象跨平臺編程猶如雨后春筍般的出現。把源文件轉換成字節碼文件,即可在各種環境中運行,是Java語言的重要特征及顯耀的光芒,為何其具有如此強大的能力,歸根到底就是因為虛擬機的重要作用。Java虛擬機在計算機編程領域又稱之為JVM,是一種用代碼語句來模擬計算機元件功能的實現包。

大家都清楚,Java語言即不是一種完全解釋型的語言,也不是一種完全編譯型的語言,其源碼文件會在編譯命令的執行過程中轉成字節碼文件,由于字節碼文件不是可執行文件,因而其不能直接被操作系統調用執行。字節碼是一種字節流文件,其以class類型的文件存在,是一種跟平臺不相耦合的類型文件,需要經過JVM的翻譯轉換才能被硬件環境識別。Java平臺體系結構可分為四層:最上面的為Java應用程序層;在此層的下面是API接口層,此層包含了眾多的JDK核心類庫;再往下一層就是JVM位置所在,JVM在此層完成字節碼解釋轉換工作,JVM層與API層共同構成Java語言的運行時環境(JRE);最下面一層為機器硬件平臺層,此層直接執行由JVM解釋出來的二進制命令。

3 虛擬機工作原理

Java虛擬機是操作系統中的一個job,所有Java應用程序均歸屬某一個虛擬機實例,當運行作為Java程序起點的Main方法時,JVM便被創建。JVM便被創建后,在虛擬機job運行過程中會創建守護線程,守護線程的作用是監測非守護線程的執行過程,保障程序的完整執行,直到應用程序的退出。

Java虛擬機是連接應用與操作平臺的橋梁,從字節碼文件變成可執行的機器命令,JVM的工作過程包含七個步驟,分別是:字節碼裝載、字節流校驗、靜態變量初始化、引用轉換、對象實例化、反射調用、GC回收,如表1所示。

第一步,裝載class類型文件到內存中。本階段的目標是要對數據進行初始化處理,銜接后繼步驟,完成整個JVM工作過程的第一步。

在這一階段所要實現的具體內容是要通過類名來定位并導入相關的字節流,并生成一個與此類相關聯的類型對象,作為該類的操作入口。

第二步,進行類的鏈接操作。在這一階段主要負責將二進制字節流的數據裝入JRE環境,此階段包含三個過程:字節流校驗、靜態變量分配內存空間、引用轉換。

驗證過程完成對源碼類的檢查,以維護JVM自身的安全;準備過程完成源碼類型結構的初始化;解析過程直接對常量值初始化。

第三步,進行Java類的對象實例化過程。此步是加載過程最后一步,在此階段所要完成的任務是:執行超類、子類中各種靜態語句塊,按順序執行父類、子類的構造器函數完成實例化過程。

第四步,運行Java類的相關功能。在此階段類的功能可以被機器以指令的方式執行。

第五步,卸載運行完畢的類對象。經過垃圾回收機制(GC)處理的最終會被JVM從內存中卸載。

4 虛擬機內存管理

虛擬機運行時會將正在使用的內存空間劃分為不同的區域,每個區域負責不同的功能,各個區域的創建,銷毀過程也都不相同。總的來說,JVM內存空間劃分為兩大塊,數據共享區與私有區,每大塊又可以進一步細分,如表2。

全局變量區:用于存儲源碼類中的全局變量,為各個線程的內存數據共享區域。

實例區:存放用new關鍵字定義并經過初始化的實例,此區空間會被GC釋放,同為數據共享區。

局部變量區:用于存儲源碼類中的局部變量,數據為特定線程專用。局部變量周期與實例線程相同,為數據私有區,不可共享。

本地方法區:與局部變量區類似,只為本地局部Native方法使用,部分JVM中也會將其與虛擬機棧合并為一,同為數據私有區,不可共享。

字節碼指令區:存儲實例線程下一步所要執行的計算機指令,同為數據私有區,不可共享。

5 類加載機制

在JRE環境中,有多個層級的類加載器,如表3所示。最頂層的為:JDK根類加載器(Bootstrap),此類為所有類加載器的總父類,次級類加載器(Extension)為其子類,直接繼承了此父加載器,次級加載器類下面同樣也存在一個繼承子類,三級類加載器(Application),在此子類中開放了自定義接口,自用戶可根據實際需要編碼以實現自定義加載器的開發。

同時在JRE環境中,加載器的裝載過程采用的是向上傳遞裝載的實現方式,當加載器收到請求要進行類裝載時,其會把相關請求發送給其直接父類,父加載器同樣會把請求向上遞歸傳遞,直到最頂層加載器。當最頂層的加載器無法完成裝載任務時,才會把請求交由子類完成,這就保證了在任務場景下類的加載任務均由最高的類加載器完成,保證了所有類型的實例對象具有相同的一致性,以避免應用程序的混亂。

6 結束語

虛擬機并不是真正的機器,是一種通過代碼來實現硬件功能的插件包。虛擬機有自己的模擬硬件環境,如全局及局部變量區、本地方法區、字節碼區、實例區等,還有自己的指令系統。對Java語言跨平臺特性而言,虛擬機是其核心構件,其直接關系應用程序的完整、健康執行,是Java語言的中樞組件。

參考文獻:

[1]蘭斌.JVM優點與缺點的深入分析[J].辦公自動化,2013(3):22-24.

[2]張鵬宇,鄭寶林.淺析JVM性能規范[J].計算機光盤軟件與應用,2011(3):111.

[3]胡雯.Java虛擬機內存分配探析[J].軟件導刊,2010(7):29-30.

[4]劉冠梅.JAVA虛擬機技術研究與實踐思考[J].科技創新與應用,2015(11):104-105.

[5]楊文超.Java虛擬機內存管理與優化策略[J].電子測試,2013(10):43-44+62.

[6]李卓恒.JAVA虛擬機相關技術研究與實踐[J].科技創新導報,2018,15(01):156+158.

[7]顧瑋.Java虛擬機的分析與研究[J].辦公自動化,2017,22(09):35-36+11.

猜你喜歡
跨平臺
跨層級網絡、跨架構、跨平臺的數據共享交換關鍵技術研究與系統建設
一款游戲怎么掙到全平臺的錢?
電腦報(2021年11期)2021-07-01 08:10:05
潛力雙跨平臺:進階:誰將跨入下一個“十大”?
跨平臺APEX接口組件的設計與實現
測控技術(2018年9期)2018-11-25 07:44:58
基于C++語言的跨平臺軟件開發的設計
數碼世界(2017年12期)2017-12-28 15:45:13
基于C++語言的跨平臺軟件開發
移動互聯網應用跨平臺開發
一種虛擬現實應用程序跨平臺方法的研究
基于QT的跨平臺輸電鐵塔監控終端軟件設計與實現
基于OPC跨平臺通信的電機監測與診斷系統
主站蜘蛛池模板: 国产欧美视频在线| 免费 国产 无码久久久| 亚洲色偷偷偷鲁综合| 中文字幕永久在线观看| 白浆免费视频国产精品视频| 人与鲁专区| 国产超碰一区二区三区| 国产欧美精品专区一区二区| 欧美精品高清| 欧美精品成人一区二区在线观看| 免费亚洲成人| 久久国产乱子伦视频无卡顿| 亚洲国产亚综合在线区| 久草视频福利在线观看| 色老二精品视频在线观看| 色欲不卡无码一区二区| 国产福利免费视频| 亚洲黄色视频在线观看一区| 亚洲视频免| 久久免费看片| 国产菊爆视频在线观看| 毛片手机在线看| 在线精品亚洲一区二区古装| 日韩精品毛片人妻AV不卡| 久久久久青草大香线综合精品 | 亚洲一区国色天香| 粉嫩国产白浆在线观看| 全色黄大色大片免费久久老太| 国产女人喷水视频| 日韩亚洲高清一区二区| 日韩欧美亚洲国产成人综合| 欧美a在线看| 日日碰狠狠添天天爽| 午夜欧美理论2019理论| 欧美黄网在线| 亚洲国产av无码综合原创国产| 色成人综合| 日韩成人免费网站| 欧美日韩中文国产va另类| 亚洲欧美在线综合图区| 麻豆a级片| 亚洲国产在一区二区三区| 国产欧美日韩在线一区| 国产91特黄特色A级毛片| aⅴ免费在线观看| 不卡视频国产| h视频在线观看网站| 欧美啪啪一区| 亚洲欧美自拍视频| 伊人91在线| 亚洲精品视频在线观看视频| 精品一区二区无码av| 欧美精品伊人久久| 全部免费毛片免费播放 | 欧美另类视频一区二区三区| 欧美激情视频在线观看一区| 香蕉久久国产超碰青草| 亚洲日韩精品无码专区97| 中文字幕精品一区二区三区视频| 黄色a一级视频| 在线人成精品免费视频| 超级碰免费视频91| 99这里只有精品免费视频| 欧美成人综合视频| 亚洲av综合网| 亚洲三级视频在线观看| 欧美黄色a| 97精品久久久大香线焦| 成年片色大黄全免费网站久久| 国产综合精品一区二区| 亚洲婷婷六月| 狼友视频一区二区三区| 免费无码网站| 国产精品视频公开费视频| 55夜色66夜色国产精品视频| 黄色网站在线观看无码| 欧美精品v欧洲精品| 亚洲福利视频一区二区| 免费观看三级毛片| 国产精品白浆在线播放| 无码福利日韩神码福利片| 亚洲成肉网|