在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

JVM入門之認識程序運行本質

jf_78858299 ? 來源:北洋洋洋 ? 作者:北洋 ? 2023-02-10 11:48 ? 次閱讀

JVM是什么

剛入門的時候老師教我們寫代碼是這樣的:

?

JAVA文件然后用javac命令編譯成class文件運行即可。

?

隨著學習的不斷拓展和工作中業(yè)務代碼的積累,對于“為什么會這樣”的困惑越來越多,于是寫了這篇博客~。

計算機能看懂的是二進制,也就是0和1。那么我們的JAVA程序和計算機又有什么關聯(lián)呢?他們是怎么聯(lián)系到一起的?

匯編語言

計算機只能識別0和1,人們發(fā)現(xiàn)利用0和1可以做很多事情:

?

比如可以做加法,由此減乘法除法(利用的也是加法)也可以做到;與,或,異或等這些構成了與門,非門等這些邏輯門;......在這上面進行擴展又可以做很多事情。

?

但是編寫0和1太過于麻煩,這個時候出現(xiàn)了助記符也就是用一個英文代表一串01的數(shù)字,也就是匯編語言。

高級語言

對于開發(fā)者來說,用匯編寫代碼不太現(xiàn)實,一個簡單的操作要用很多行匯編代碼才能實現(xiàn),所以再它之上做了處理,比如java,c,等等高級語言。那么計算機怎么識別高級語言的呢?

虛擬機是什么

答案是虛擬機,虛擬機可以理解為虛擬計算機,虛擬計算機通過解釋器將其認識的指令解釋為計算機認識的指令。JVM中只通過解釋器來解釋運行效率太慢,所以對于熱點代碼即反復執(zhí)行的代碼通過JIT即時編譯器將其編譯為本地代碼。這個編譯器叫做后端編譯器。

?

JVM流行的一點原因是其跨平臺性:一次編譯,多端運行

怎么實現(xiàn)的大家也大概猜到了,JVM虛擬機識別操作系統(tǒng)將class字節(jié)碼轉換為不同操作系統(tǒng)可以識別的指令。

?

java代碼如何轉換成機器識別的代碼

我們寫代碼的時候通過編寫JAVA文件,通過javac命令編譯成class文件,用java命令運行class文件。

拆分:一,也就是javac命令將java代碼編譯成為java字節(jié)碼也就是class文件,這個編譯器叫做前端編譯器。編譯后的class文件由0和1構成,這其實是java字節(jié)碼的結構。

二,通過類加載器ClassLoader的加載,鏈接,初始化后將其轉換為JVM內存中的數(shù)據(jù)。我們要想看到class字節(jié)碼結構是什么樣的,可以通過反編譯class文件,講解JAVA字節(jié)碼文件將在后面博客中詳細介紹。

三,執(zhí)行引擎將高級語言翻譯為機器語言即計算機能夠識別的語言。

總結:前端編譯器將Java文件轉換為字節(jié)碼class文件,通過類加載器ClassLoader的加載,鏈接,初始化這三步加載到內存中,JVM識別字節(jié)碼文件將數(shù)據(jù)放到對應的內存結構中,但是機器不認識這些字節(jié)碼文件,所以執(zhí)行引擎又進行了編譯轉化為計算機能夠識別的指令【后端編譯器】,其充當了轉換字節(jié)碼的任務(通過解釋器解釋運行,但是由于效率低,所以對于熱點代碼通過JIT即時編譯器編譯成本地代碼)

最后來張圖:圖中運行時數(shù)據(jù)區(qū)為JVM內存結構中的,下一篇博客進行講解~。

在這里插入圖片描述

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 二進制
    +關注

    關注

    2

    文章

    796

    瀏覽量

    41741
  • JAVA
    +關注

    關注

    19

    文章

    2974

    瀏覽量

    105018
  • Class
    +關注

    關注

    0

    文章

    53

    瀏覽量

    19769
  • JVM
    JVM
    +關注

    關注

    0

    文章

    158

    瀏覽量

    12252
收藏 人收藏

    評論

    相關推薦

    Jvm的整體結構和特點

    JVM特點    首先一次編譯處處運行是學習Java語言都知道的事情,其實并不是Java語言跨平臺,是JVM跨平臺,Jvm運行時并不是執(zhí)行
    發(fā)表于 01-05 17:23

    電機的本質運行原理是什么

    本文章持續(xù)更新模型的搭建和文章關注我的博客吧下面是我以視頻的形式做的講解,有興趣的同學的可以去看看1.電機的本質運行原理是什么?這個視頻可以在你入門是給你一個新的視角來看待電機
    發(fā)表于 09-06 06:55

    數(shù)字電池EDA入門VHDL程序實現(xiàn)集

    數(shù)字電池EDA入門VHDL程序實現(xiàn)集
    發(fā)表于 12-07 14:14 ?0次下載

    Jvm工作原理學習筆記

    JVM實例對應了一個獨立運行的java程序它是進程級別 a) 啟動。啟動一個Java程序時,一個JVM實例就產生了,任何一個擁有public
    發(fā)表于 04-03 11:03 ?5次下載

    用JMX連接本地JVM運行的Java程序

    如果有人問你,如何用JMX連接本地JVM運行的Java程序,你會怎么回答? 其實,他只是想開發(fā)一個JMX的客戶端來配置一個本地Java程序。這個時候,千萬不要推薦JConsole,因
    發(fā)表于 04-03 15:11 ?4次下載

    Java程序是如何運行

    的,什么是JVM;要理解我們編寫的Java程序運行起來以后到底是什么樣子,本質上就是弄清楚JVM是什么樣子。 Java
    的頭像 發(fā)表于 12-27 09:31 ?1853次閱讀

    Java:JVM虛擬機的入門知識

    Java開發(fā)現(xiàn)在面試越來越難了,進大廠必備的JVM、多線程高并發(fā)這都是最基礎的知識了,今天我們一起來學習Java虛擬機入門
    的頭像 發(fā)表于 07-01 11:43 ?2346次閱讀
    Java:<b class='flag-5'>JVM</b>虛擬機的<b class='flag-5'>入門</b>知識

    JVM運行時數(shù)據(jù)區(qū)堆內存

    說一下 JVM 運行時數(shù)據(jù)區(qū)吧,都有哪些區(qū)?分別是干什么的?
    的頭像 發(fā)表于 08-19 14:35 ?722次閱讀
    <b class='flag-5'>JVM</b><b class='flag-5'>運行</b>時數(shù)據(jù)區(qū)<b class='flag-5'>之</b>堆內存

    jvm內存溢出故障排查

    JVM內存溢出是常見且令人頭疼的問題,特別是在運行大型Java應用程序或長時間運行的應用程序時。當JVM
    的頭像 發(fā)表于 12-05 11:04 ?875次閱讀

    jvm內存模型和內存結構

    JVM(Java虛擬機)是Java程序運行平臺,它負責將Java程序轉換成機器碼并在計算機上執(zhí)行。在JVM中,內存模型和內存結構是兩個重要
    的頭像 發(fā)表于 12-05 11:08 ?973次閱讀

    jvm調優(yōu)參數(shù)

    JVM(Java虛擬機)是Java程序運行環(huán)境,它負責解釋Java字節(jié)碼并執(zhí)行相應的指令。為了提高應用程序的性能和穩(wěn)定性,我們可以調優(yōu)JVM
    的頭像 發(fā)表于 12-05 11:29 ?688次閱讀

    jvm哪些區(qū)域會發(fā)生oom

    JVM 是 Java 虛擬機的縮寫,是Java程序運行平臺。JVM 內存被劃分為不同的區(qū)域,每個區(qū)域負責不同的任務和存儲不同類型的數(shù)據(jù)。其中,一些區(qū)域容易發(fā)生內存溢出錯誤(Out
    的頭像 發(fā)表于 12-05 11:51 ?1438次閱讀

    jvm運行時內存區(qū)域劃分

    JVM是Java Virtual Machine(Java虛擬機)的縮寫,它是Java編程語言的運行環(huán)境。JVM的主要功能是將Java源代碼轉換為機器代碼,并且在運行時管理Java
    的頭像 發(fā)表于 12-05 14:08 ?564次閱讀

    weblogic jvm參數(shù)配置

    在WebLogic中,JVM參數(shù)配置是非常重要的,它可以對應用程序的性能和穩(wěn)定性產生直接影響。JVM參數(shù)通過調整Java虛擬機的運行時行為,可以優(yōu)化內存管理、垃圾回收以及線程管理等方面
    的頭像 發(fā)表于 12-05 14:31 ?1515次閱讀

    weblogic設置jvm內存大小

    如何設置WebLogic服務器的JVM內存大小。 一、了解JVM內存 JVM(Java Virtual Machine)是Java應用程序運行
    的頭像 發(fā)表于 12-05 14:44 ?3140次閱讀
    主站蜘蛛池模板: 激情综合丝袜美女一区二区 | 久久久久久91精品色婷婷 | 天天曰天天干天天操 | 色天天综合色天天天天看大 | 亚洲入口 | 色网站免费在线观看 | 2022天天操 | 久久婷婷久久一区二区三区 | 美女网站一区二区三区 | 久久夜靖品 | 午夜影院免费版 | 精品国模 | 干干天天 | 日本aaaaa特黄毛片 | 欧美日本一区二区三区 | 久久综合九色综合精品 | 67pao强力打造高清免费 | 黄色网欧美 | 97人人射 | 国产亚洲精品久久久久久久软件 | 欧美成人精品福利网站 | 日韩啪啪电影 | 国产美女亚洲精品久久久综合 | 三级精品 | 亚洲国产精品久久久久婷婷软件 | 人人看人人做人人爱精品 | 亚洲一区在线观看视频 | 热99视频| 国产专区视频 | 成人啪啪网站 | 超级碰碰青草免费视频92 | fenfencao在线观看免费视频 | 成人狠狠色综合 | 色综合综合色综合色综合 | 噜噜色.com| 91网站网站网站在线 | 天天色天天看 | 激情网五月 | 国产亚洲精品免费 | 三级视频网站 | 国产乱码一区二区三区四川人 |