国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【從零開(kāi)始學(xué)JVM】第一章_JVM和java體系結(jié)構(gòu)

這篇具有很好參考價(jià)值的文章主要介紹了【從零開(kāi)始學(xué)JVM】第一章_JVM和java體系結(jié)構(gòu)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

第一章_JVM和java體系結(jié)構(gòu)

1.java和JVM簡(jiǎn)介

1.1Java

Java是一門跨平臺(tái)的語(yǔ)言

Java 語(yǔ)言的特點(diǎn)包括:

  1. 跨平臺(tái)性:Java 程序可以在不同操作系統(tǒng)上運(yùn)行,只需安裝對(duì)應(yīng)平臺(tái)的 Java 虛擬機(jī)(JVM)即可。
  2. 面向?qū)ο?/mark>:Java 是一種純粹的面向?qū)ο缶幊陶Z(yǔ)言,支持封裝、繼承、多態(tài)等面向?qū)ο筇匦浴?/li>
  3. 健壯性:Java 在設(shè)計(jì)時(shí)考慮了許多安全檢查,如內(nèi)存管理、異常處理等,以確保程序的穩(wěn)定性和可靠性。
  4. 安全性:Java 提供了安全管理機(jī)制,可以防止惡意代碼對(duì)系統(tǒng)造成危害。
  5. 高性能:Java 通過(guò)即時(shí)編譯等技術(shù)提高了執(zhí)行效率,適用于需要高性能的應(yīng)用場(chǎng)景。

1.2JVM

JVM 是 Java 程序的運(yùn)行環(huán)境,它負(fù)責(zé)將 Java 字節(jié)碼翻譯成特定平臺(tái)的機(jī)器碼并執(zhí)行。

JVM 還提供了垃圾回收、內(nèi)存管理等功能,幫助開(kāi)發(fā)者更輕松地管理程序的執(zhí)行。

【從零開(kāi)始學(xué)JVM】第一章_JVM和java體系結(jié)構(gòu),【從零開(kāi)始學(xué)JVM】,jvm,java,python

2.Java文件編譯過(guò)程

  1. 程序員編寫的.java文件
  2. 由javac編譯成字節(jié)碼文件.class:(為什么編譯成class文件,因?yàn)镴VM只認(rèn)識(shí).class文件)
  3. 在由JVM編譯成電腦認(rèn)識(shí)的文件(0101010101) (對(duì)于電腦系統(tǒng)來(lái)說(shuō) 文件代表一切)

【從零開(kāi)始學(xué)JVM】第一章_JVM和java體系結(jié)構(gòu),【從零開(kāi)始學(xué)JVM】,jvm,java,python

3.JVM整體結(jié)構(gòu)

【從零開(kāi)始學(xué)JVM】第一章_JVM和java體系結(jié)構(gòu),【從零開(kāi)始學(xué)JVM】,jvm,java,python

  1. 類加載器子系統(tǒng)(Class Loader Subsystem)
    • 類加載器負(fù)責(zé)加載類文件到內(nèi)存中,并生成對(duì)應(yīng)的 Class 對(duì)象。類加載器按照特定的規(guī)則從不同的位置加載類文件,如文件系統(tǒng)、網(wǎng)絡(luò)等。
    • 類加載器通常包括啟動(dòng)類加載器(Bootstrap Class Loader)、擴(kuò)展類加載器(Extension Class Loader)和應(yīng)用程序類加載器(Application Class Loader)等層次。
  2. 運(yùn)行時(shí)數(shù)據(jù)區(qū)(Runtime Data Area)
    • 方法區(qū)(Method Area):存儲(chǔ)類的元信息、靜態(tài)變量、常量池等數(shù)據(jù)。
    • 堆(Heap):存儲(chǔ)對(duì)象實(shí)例以及數(shù)組。
    • 棧(Stack):存儲(chǔ)局部變量、操作數(shù)棧、方法返回地址等。
    • 程序計(jì)數(shù)器(Program Counter Register):記錄當(dāng)前線程執(zhí)行的字節(jié)碼指令地址。
    • 本地方法棧(Native Method Stack):為執(zhí)行本地方法服務(wù)。
  3. 執(zhí)行引擎(Execution Engine)
    • 解釋器(Interpreter):逐行解釋字節(jié)碼并執(zhí)行對(duì)應(yīng)的本地機(jī)器指令。
    • 即時(shí)編譯器(Just-In-Time Compiler,JIT):將熱點(diǎn)代碼(頻繁執(zhí)行的代碼段)編譯成本地機(jī)器碼,提高執(zhí)行效率。
  4. 本地方法接口(Native Interface)
    • 提供了與底層 C/C++ 等語(yǔ)言交互的能力,允許 Java 調(diào)用本地方法。
  5. 本地方法庫(kù)(Native Method Libraries)
    • 包含了一些與平臺(tái)相關(guān)的本地庫(kù)和方法,用于支持 JVM 的底層操作。

4.JVM生命周期

  • 虛擬機(jī)的啟動(dòng)

    通過(guò)引導(dǎo)類加載器(bootstrap class loader)創(chuàng)建一個(gè)初始類來(lái)完成,這個(gè)類是由虛擬機(jī)的具體實(shí)現(xiàn)指定的。

  • 虛擬機(jī)的執(zhí)行

    • 一個(gè)運(yùn)行中的java虛擬機(jī)有這一個(gè)清晰地任務(wù),執(zhí)行java程序
    • 程序開(kāi)始執(zhí)行時(shí)他才運(yùn)行,程序結(jié)束時(shí)它就停止
    • 執(zhí)行一個(gè)所謂的java程序的時(shí)候,真真正正在執(zhí)行的是一個(gè)叫做java虛擬機(jī)的進(jìn)程
      虛擬機(jī)的退出
  • 程序正常執(zhí)行結(jié)束

    • 程序在執(zhí)行過(guò)程中遇到了異常會(huì)錯(cuò)誤而終止
    • 由于操作系統(tǒng)出現(xiàn)錯(cuò)誤而導(dǎo)致java虛擬機(jī)進(jìn)程終止
    • 某線程調(diào)用Runtime類或Systen類的exit方法,或Runtime類的halt方法,并且java安全管理器也允許這次exit或halt操作。
    • 除此之外,JNI規(guī)范描述了用JNI Invocation API來(lái)加載或卸載Java虛擬機(jī)時(shí),jaca虛擬機(jī)的退出情況

5.JVM發(fā)展進(jìn)程

  • Sun Classic VM

    • 世界上第一款商用java虛擬機(jī)
    • 虛擬機(jī)內(nèi)部只提供解釋器
    • 現(xiàn)在的hotspot內(nèi)置了此虛擬機(jī)
  • Exact VM

    • 可以知道內(nèi)存中某個(gè)位置的數(shù)據(jù)具體是什么類型
    • 具備現(xiàn)代高性能虛擬機(jī)的雛形:熱點(diǎn)探測(cè)+編譯器和解釋器混合工作模式
  • HotSpot VM

    • JDK1.3時(shí),成為默認(rèn)虛擬機(jī)
    • 在服務(wù)器端,桌面到移動(dòng)端,嵌入式都有應(yīng)用
    • Hotspot指的就是熱點(diǎn)代碼探測(cè)技術(shù)
  • JRockit

    • 專注于服務(wù)器端應(yīng)用
    • 內(nèi)部不包含解析器實(shí)現(xiàn)
    • 是世界上最快的JVM
  • J9

    • 有影響力的三大商用虛擬機(jī)之一
    • 服務(wù)器端,桌面應(yīng)用,嵌入式等多用途VM
  • Azul VM

    • 無(wú)停頓垃圾回收
    • 與特定硬件平臺(tái)綁定,軟硬件配合的專有虛擬機(jī)
    • 可預(yù)測(cè)性
    • 適用于大內(nèi)存應(yīng)用
  • Liquid VM

    【從零開(kāi)始學(xué)JVM】第一章_JVM和java體系結(jié)構(gòu),【從零開(kāi)始學(xué)JVM】,jvm,java,python

  • Taoban JVM

    【從零開(kāi)始學(xué)JVM】第一章_JVM和java體系結(jié)構(gòu),【從零開(kāi)始學(xué)JVM】,jvm,java,python文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-830978.html

6.JDK發(fā)展路程

  1. JDK 1.0(1996年):最初版本的 Java 開(kāi)發(fā)工具包中包含了最基本的 JVM,實(shí)現(xiàn)了 Java 語(yǔ)言的基本功能。
  2. JDK 1.2(1998年):引入了 Just-In-Time 編譯器(JIT),提高了 Java 程序的性能。
  3. JDK 1.3(2000年):增加了 Java HotSpot 虛擬機(jī),引入了即時(shí)編譯器技術(shù),進(jìn)一步提升了性能。
  4. JDK 1.4(2002年):引入了新的垃圾回收器(包括并行回收器和分代回收器),改善了內(nèi)存管理和回收效率。
  5. JDK 5.0(2004年):引入了泛型、枚舉、自動(dòng)裝箱拆箱等新特性,對(duì)虛擬機(jī)也做了優(yōu)化和改進(jìn)。
  6. JDK 6(2006年):增加了 G1 垃圾回收器,改進(jìn)了性能和可靠性。
  7. JDK 7(2011年):引入了新的垃圾回收器(G1 GC)、InvokeDynamic 指令等功能,提高了性能和靈活性。
  8. JDK 8(2014年):引入了 Lambda 表達(dá)式、Stream API 等新特性,同時(shí)對(duì)虛擬機(jī)進(jìn)行了性能優(yōu)化。
  9. JDK 9(2017年):引入了模塊化系統(tǒng)(Jigsaw)、改進(jìn)了垃圾回收器、優(yōu)化了性能等。
  10. JDK 10、11、12、13、14、15、16、17、18:每個(gè)版本都帶來(lái)了新的特性、改進(jìn)和優(yōu)化,如局部變量類型推斷、ZGC 垃圾回收器、Shenandoah 垃圾回收器等。

到了這里,關(guān)于【從零開(kāi)始學(xué)JVM】第一章_JVM和java體系結(jié)構(gòu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 計(jì)算機(jī)網(wǎng)絡(luò)第一章——計(jì)算機(jī)體系結(jié)構(gòu)(上)

    計(jì)算機(jī)網(wǎng)絡(luò)第一章——計(jì)算機(jī)體系結(jié)構(gòu)(上)

    提示:劍未佩妥,出門已是江湖;酒尚余溫,入口不識(shí)乾坤,愿歷盡千帆,歸來(lái)仍是少年。 電信網(wǎng)絡(luò)就是通過(guò)電話線連接起來(lái)的一個(gè)網(wǎng)絡(luò),有線電視網(wǎng)絡(luò)通過(guò)電纜或者光纜將已經(jīng)錄制好的電視節(jié)目發(fā)給千家萬(wàn)戶,計(jì)算機(jī)網(wǎng)絡(luò)是通過(guò)各個(gè)結(jié)點(diǎn),這個(gè)結(jié)點(diǎn)包括終端的電腦,手機(jī),

    2024年02月06日
    瀏覽(32)
  • 計(jì)算機(jī)網(wǎng)絡(luò)——第一章體系結(jié)構(gòu)相關(guān)習(xí)題及詳細(xì)解析

    計(jì)算機(jī)網(wǎng)絡(luò)——第一章體系結(jié)構(gòu)相關(guān)習(xí)題及詳細(xì)解析

    在OSI參考模型中,自下而上第一個(gè)提供端到端服務(wù)的層次是: A.數(shù)據(jù)鏈路層? ? ? ? B.傳輸層? ? ? ? C.會(huì)話層? ? ? ? D.應(yīng)用層 答案選擇: B.傳輸層 即, 在OSI參考模型中,自下而上第一個(gè)提供端到端服務(wù)的層次是傳輸層。 ?解析 為了解決這道題,我們首先要了解OSI體系結(jié)構(gòu)

    2024年02月08日
    瀏覽(25)
  • 1.jvm和java體系結(jié)構(gòu)

    1.jvm和java體系結(jié)構(gòu)

    Java是目前應(yīng)用最為廣泛的軟件開(kāi)發(fā)平臺(tái)之一。隨著Java以及Java社區(qū)的不斷壯大Java 也早已不再是簡(jiǎn)簡(jiǎn)單單的一門計(jì)算機(jī)語(yǔ)言了,它更是一個(gè)平臺(tái)、一種文化、一個(gè)社區(qū)。 ● 作為一個(gè)平臺(tái),Java虛擬機(jī)扮演著舉足輕重的作用 ○ Groovy、Scala、JRuby、Kotlin等都是Java平臺(tái)的一部分 ●

    2024年02月11日
    瀏覽(64)
  • JVM 體系結(jié)構(gòu)

    JVM 體系結(jié)構(gòu)

    JVM: 跨平臺(tái)語(yǔ)言 需要不同語(yǔ)言由自己編譯器,生成符合 JSR-292 JVM規(guī)范的字節(jié)碼文件,即可在 Java 虛擬機(jī)中運(yùn)行 ?多語(yǔ)言混合編程: Java 平臺(tái)上的多語(yǔ)言混合編程正成為主流,通過(guò)特定領(lǐng)域的語(yǔ)言去解決特定領(lǐng)域的問(wèn)題是當(dāng)前軟件開(kāi)發(fā)應(yīng)對(duì)日趨復(fù)雜的項(xiàng)目需求的一個(gè)方向 每個(gè)應(yīng)

    2024年02月03日
    瀏覽(51)
  • 計(jì)算機(jī)組成與體系結(jié)構(gòu)第一次試驗(yàn):運(yùn)算器實(shí)驗(yàn)

    計(jì)算機(jī)組成與體系結(jié)構(gòu)第一次試驗(yàn):運(yùn)算器實(shí)驗(yàn)

    為了幫助同學(xué)們完成痛苦的實(shí)驗(yàn)課程設(shè)計(jì),本作者將其作出的實(shí)驗(yàn)結(jié)果及代碼貼至CSDN中,供同學(xué)們學(xué)習(xí)參考。如有不足或描述不完善之處,敬請(qǐng)各位指出,歡迎各位的斧正! 掌握使用算術(shù)邏輯運(yùn)算器 74LS181 進(jìn)行算術(shù)運(yùn)算、 邏輯運(yùn)算的方法。 掌握基于“累加-移位”原理的串

    2024年02月04日
    瀏覽(18)
  • RISC-V體系結(jié)構(gòu)的U-Boot引導(dǎo)過(guò)程 第一階段

    RISC-V體系結(jié)構(gòu)的U-Boot引導(dǎo)過(guò)程 第一階段

    RISC-V體系結(jié)構(gòu)的U-Boot引導(dǎo)過(guò)程 第一階段 flyfish .globl使符號(hào)對(duì)鏈接器可見(jiàn)相當(dāng)于C語(yǔ)言中的Extern,聲明此變量,并且告訴鏈接器此變量是全局變量,外部可以訪問(wèn).u-boot.lds里的ENTRY(_start)也是這里的_start。 即指定入口為_(kāi)start,_start就是整個(gè)start.S的開(kāi)始的地方,是整個(gè)uboot的代碼的開(kāi)

    2024年02月10日
    瀏覽(27)
  • 從零開(kāi)始學(xué)數(shù)據(jù)分析之——《線性代數(shù)》第一章 行列式

    從零開(kāi)始學(xué)數(shù)據(jù)分析之——《線性代數(shù)》第一章 行列式

    三十而立之年,開(kāi)始自學(xué)數(shù)據(jù)分析,工作比較清閑,現(xiàn)發(fā)帖記錄自己的數(shù)據(jù)分析之路,數(shù)據(jù)分析要學(xué)很多的東西,經(jīng)過(guò)多月的摸索,目前分兩個(gè)方面開(kāi)始學(xué)習(xí): ·知識(shí)方面:數(shù)學(xué)為王,拿起書本,重學(xué)《概率與統(tǒng)計(jì)》、《微積分》、《線性代數(shù)》 ·軟件方面:MySQL、Python 將暫

    2024年02月12日
    瀏覽(31)
  • 【從零開(kāi)始學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu) | 第一篇】樹(shù)

    【從零開(kāi)始學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu) | 第一篇】樹(shù)

    目錄 前言:? 樹(shù): 樹(shù)結(jié)點(diǎn)之間的關(guān)系描述: ?樹(shù)的常見(jiàn)屬性: 森林: ?編輯樹(shù)的性質(zhì): 總結(jié): 當(dāng)談?wù)摂?shù)據(jù)結(jié)構(gòu)時(shí),樹(shù)(Tree)是一種極為重要且常用的數(shù)據(jù)結(jié)構(gòu)之一。樹(shù)的概念源自現(xiàn)實(shí)生活中的樹(shù)木,它具有分層結(jié)構(gòu),由 節(jié)點(diǎn)(Node) 和 邊(Edge) 組成,形成了一種類似于

    2024年04月16日
    瀏覽(25)
  • 詳解Java中的異常體系結(jié)構(gòu)(throw,throws,try-catch,finally,自定義異常)

    詳解Java中的異常體系結(jié)構(gòu)(throw,throws,try-catch,finally,自定義異常)

    目錄 一.異常的概念 二.異常的體系結(jié)構(gòu) 三.異常的處理 異常處理思路 LBYL:Look Before You Leap EAFP: It\\\'s Easier to Ask Forgiveness than Permission 異常拋出throw 異常的捕獲 提醒聲明throws ?try-catch捕獲處理 finally的作用 四.自定義異常類 有一句話說(shuō)的很好 ”程序員不是在寫B(tài)UG就是在改BUG”

    2024年02月05日
    瀏覽(26)
  • 【從零開(kāi)始學(xué)習(xí)JAVA | 第三十一篇】異常體系介紹

    【從零開(kāi)始學(xué)習(xí)JAVA | 第三十一篇】異常體系介紹

    ? ? ? ? 本文我們將為大家介紹一下異常的整個(gè)體系,而我們學(xué)習(xí)異常,不是為了敲代碼的時(shí)候不出異常,而是為了能夠熟練的處理異常,如何解決代碼中的異常。 ?我們就以這張圖作為線索來(lái)詳細(xì)介紹一下Java中的異常: 在Java中, Exception(異常)是一種表示非致命錯(cuò)誤或異

    2024年02月15日
    瀏覽(90)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包