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

【JVM】字節(jié)碼文件的組成部分

這篇具有很好參考價值的文章主要介紹了【JVM】字節(jié)碼文件的組成部分。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


【JVM】字節(jié)碼文件的組成部分,# JVM,jvm

??個人主頁: ?? 葉落閑庭
??我的專欄:??
c語言
數(shù)據(jù)結(jié)構(gòu)
javaEE
操作系統(tǒng)
Redis

石可破也,而不可奪堅;丹可磨也,而不可奪赤。

一、字節(jié)碼文件的組成部分

  • 操作數(shù)棧是臨時存放數(shù)據(jù)的地方
  • 局部變量表是存放方法中的局部變量的位置

觀察如下代碼的字節(jié)碼文件

int i = 0;
int j = i + 1;

具體的java源代碼:

public static void main(String[] args) {
    int i = 0;
    int j = i + 1;
}

要想看到java的字節(jié)碼文件的內(nèi)容,可以通過jclasslib這個工具來看,運行以上代碼,然后通過jclasslib可以看到在這個方法中變量的存放位置,其中,局部變量表數(shù)組的0索引位置存放的是main方法的參數(shù) args ,1索引位置存放的是第一個變量 i ,2索引存放的是第二個變量 j ,可以看出,定義在方法中的變量,方法的參數(shù)也將作為這個方法的變量存入局部變量表中,定義在方法內(nèi)的變量會按定義的先后順序依次存入局部變量表中。

【JVM】字節(jié)碼文件的組成部分,# JVM,jvm

接下來解析這段代碼的字節(jié)碼文件:

  • iconst_0:將常量0放入到操作數(shù)棧中
  • istore_1:將操作數(shù)棧中的值取出放入局部變量表索引為1的位置
  • iload_1:將局部變量表索引為1的位置的值復制一份放入到操作數(shù)棧中
  • iconst_1:將常量1放入到操作數(shù)棧中
  • iadd:將操作數(shù)棧中最上面的兩個值相加,并把結(jié)果存放在棧中
  • istore_2:將操作數(shù)棧中的值取出放入局部變量表索引為2的位置
  • return:方法結(jié)束,返回

1.1 iconst_0


【JVM】字節(jié)碼文件的組成部分,# JVM,jvm


1.2 istore_1


【JVM】字節(jié)碼文件的組成部分,# JVM,jvm


1.3 iload_1


【JVM】字節(jié)碼文件的組成部分,# JVM,jvm


1.4 iconst_1


【JVM】字節(jié)碼文件的組成部分,# JVM,jvm


1.5 iadd


【JVM】字節(jié)碼文件的組成部分,# JVM,jvm


1.6 istore_2


【JVM】字節(jié)碼文件的組成部分,# JVM,jvm


1.7 return

【JVM】字節(jié)碼文件的組成部分,# JVM,jvm


二、執(zhí)行i++ 操作

  • 源代碼:
public static void main(String[] args) {
    int i = 0;
    i++;
}
  • 字節(jié)碼:
  • iconst_0:將常量0放入操作數(shù)棧中

  • istore_1:將操作數(shù)棧中的值取出放入索引為1的局部變量表中

  • iinc 1 by 1:在局部變量表索引為1的位置增加1

  • return:方法結(jié)束,返回

2.1 iconst_0


【JVM】字節(jié)碼文件的組成部分,# JVM,jvm


2.2 istore_1


【JVM】字節(jié)碼文件的組成部分,# JVM,jvm


2.3 iinc 1 by 1

根據(jù)JVM規(guī)范,iinc就是通過一個常量遞增局部變量


【JVM】字節(jié)碼文件的組成部分,# JVM,jvm


2.4 return


【JVM】字節(jié)碼文件的組成部分,# JVM,jvm


三、字節(jié)碼常用工具:javap -v命令

javap是JDK自帶的反編譯工具,可以通過控制臺查看字節(jié)碼文件的內(nèi)容。
適合在服務器上查看字節(jié)碼文件內(nèi)容。
直接輸入javap查看所有參數(shù)。
輸入javap-v字節(jié)碼文件名稱查看具體的字節(jié)碼信息。(如果jar包需要先使用jar-vf命令解壓)文章來源地址http://www.zghlxwxcb.cn/news/detail-717326.html

到了這里,關(guān)于【JVM】字節(jié)碼文件的組成部分的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

  • JavaScript的三大組成部分是什么?JavaScript的核心組成部分解析:語法、BOM和DOM

    JavaScript的三大組成部分是什么?JavaScript的核心組成部分解析:語法、BOM和DOM

    ???? 博主貓頭虎 帶您 Go to New World.??? ?? 博客首頁——貓頭虎的博客?? ??《面試題大全專欄》 文章圖文并茂??生動形象??簡單易學!歡迎大家來踩踩~?? ?? 《IDEA開發(fā)秘籍專欄》學會IDEA常用操作,工作效率翻倍~?? ?? 《100天精通Golang(基礎入門篇)》學會Golang語言

    2024年02月10日
    瀏覽(24)
  • 采樣電路的3個組成部分

    采樣電路的3個組成部分

    采樣電路的使用實際上是電路的一個閉環(huán)控制過程,也可以理解為一個負反饋過程,采集的信號被傳送到主控制芯片進行調(diào)整。今天就來為您介紹一下采樣電路的三個組成部分分析!一起來看看吧! 這里的采樣實際上分為電流采樣、電壓采樣、直流采樣和交流采樣。采樣類型

    2023年04月18日
    瀏覽(32)
  • 嵌入式系統(tǒng)概念及其組成部分

    目錄 硬件部分包括 中央處理器(CPU) 存儲器 輸入/輸出接口 時鐘 傳感器和執(zhí)行器 軟件部分包括 操作系統(tǒng) 應用程序 驅(qū)動程序 固件 嵌入式系統(tǒng)是指嵌入到其他設備或系統(tǒng)中的計算機系統(tǒng),它通常具有特定的功能和任務,而且對于用戶來說是透明的。嵌入式系統(tǒng)通常由硬件和

    2024年02月08日
    瀏覽(25)
  • 云計算安全——安全基線以及組成部分

    文章目錄 1、什么是安全基線? 2、安全基線包括哪幾部分? 總結(jié) 安全基線是指一組安全配置標準或最佳實踐,用于指導和保障計算機系統(tǒng)或網(wǎng)絡的安全性。安全基線包括了操作系統(tǒng)、應用程序、網(wǎng)絡設備等各種組件的安全配置要求,以及安全控制和審計要求等。 安全基線通

    2024年02月13日
    瀏覽(25)
  • Postman —— HTTP請求基礎組成部分

    Postman —— HTTP請求基礎組成部分

    一般來說,所有的HTTP?Request都有最基礎的4個部分組成: URL 、? Method 、? Headers 和 body 。 (1)Method 要選擇Request的Method是很簡單的,Postman支持所有的請求方式。 (2)URL 要組裝一條Request(請求), URL永遠是你首先要填的內(nèi)容。在Postman里面,你曾輸入過的URL是可以通過下拉自

    2024年02月03日
    瀏覽(22)
  • Linux內(nèi)核主要組成部分有哪些?

    Linux內(nèi)核主要組成部分有哪些?

    Linux 內(nèi)核由幾大子系統(tǒng)構(gòu)成,分別為進程調(diào)度、進程間通信(IPC) 、內(nèi)存管理、虛擬 文件系統(tǒng)和網(wǎng)絡接口。這幾大子系統(tǒng)既相互獨立又有非常緊密的關(guān)聯(lián)。圖 3-5 展示了內(nèi)核的 幾大子系統(tǒng)之間以及這些子系統(tǒng)和計算機系統(tǒng)的其他模塊之間的關(guān)系。 接下來依次介紹內(nèi)核中的各

    2024年02月04日
    瀏覽(21)
  • 什么是業(yè)務運營?關(guān)鍵組成部分有哪些?

    什么是業(yè)務運營?關(guān)鍵組成部分有哪些?

    企業(yè)領(lǐng)導者使用收入運營和智能軟件等技術(shù)來分析買家的不同接觸點。這些見解決定了客戶互動的成敗,從而改善了業(yè)務運營,從而帶來了成功。 業(yè)務運營包括企業(yè)為保持盈利而執(zhí)行的一系列日常任務。雖然這些任務可能因業(yè)務類型或行業(yè)而異,但它們通常包括 營銷、銷售

    2024年02月13日
    瀏覽(27)
  • web3簡述Dapp組成部分

    好啊 都說光說不練 會感覺很空啊 那 我們就來進入真正的這個操作過程啊 區(qū)塊鏈這種東西 我們肯定是無法從零開始搭建的 我們在這里說 是通過 以太坊提供的公有鏈的應用開發(fā)平臺來做的 就可以理解為 以太坊是一個大的公共平臺 人家給我們把地基搭好了 我們只需要在上面

    2024年02月09日
    瀏覽(23)
  • FPGA底層架構(gòu)——FPGA六大組成部分

    FPGA底層架構(gòu)——FPGA六大組成部分

    FPGA底層資源 可編程輸入輸出單元(IOB) 可編程邏輯單元(CLB) 時鐘管理單元(DCM) 嵌入塊狀RAM(BRAM) 布線資源 內(nèi)嵌的專用硬件模塊(硬IP,硬核) 內(nèi)嵌的底層功能單元(軟IP,軟核) 補充(DSP48、PLL資源、乘法器資源等,) 最重要的部分 bigfont color=\\\"red\\\" 可編程輸入輸出

    2024年04月26日
    瀏覽(23)
  • 服務器硬件基礎知識:組成部分和功能

    在當今信息技術(shù)的舞臺上,服務器扮演著重要角色,它不僅提供各種服務和資源,如網(wǎng)站托管、應用程序部署、數(shù)據(jù)庫管理和云計算,而且是信息技術(shù)領(lǐng)域的核心組件之一。想要更好地了解服務器的運作原理和性能優(yōu)化,就必須深入了解服務器硬件的基礎知識。本文將帶你深

    2024年04月16日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包