欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解java中jvm虛擬機(jī)棧的作用

 更新時(shí)間:2019年08月29日 14:29:29   作者:張占嶺  
這篇文章主要介紹了jvm虛擬機(jī)棧的作用,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

jvm虛擬機(jī)棧的作用

jvm虛擬機(jī)棧棧幀的組成

jvm虛擬機(jī)棧,也叫java棧,它由一個(gè)個(gè)的棧幀組成,而棧帖由以下幾個(gè)部分組成

  • 局部變量表-存儲(chǔ)方法參數(shù),內(nèi)部使用的變量
  • 操作數(shù)棧-在變量進(jìn)行存儲(chǔ)時(shí),需要進(jìn)行入棧和出棧
  • 動(dòng)態(tài)連接-引用類(lèi)型的指針
  • 方法出口-方法的返回
  • 一段原程序代碼
package com.lind.basic;

public class Demo1 {
 static int hello() {
 int a = 1;
 int b = 2;
 int c = a + b;
 return c;
 }

 public static void main(String[] args) {
 System.out.println(hello());
 }
}

一 生成字節(jié)碼文件

javac demo1.java

生成之后,擴(kuò)展名是.class,這個(gè)文件對(duì)于我們來(lái)說(shuō)是沒(méi)有可讀性的。

二 對(duì)class文件反匯編

javap demo1.class > demo1.txt

我們可以通過(guò)文件編譯工具來(lái)查看demo1.txt的內(nèi)容

Compiled from "Demo1.java"
public class com.lind.basic.Demo1 {
 public com.lind.basic.Demo1();
 Code:
  0: aload_0
  1: invokespecial #1     // Method java/lang/Object."<init>":()V
  4: return

 static int hello();
 Code:
  0: iconst_1 // 把第一個(gè)整型變量推到操作數(shù)棧
  1: istore_0 // 讓它出棧,并存儲(chǔ)到局部變量表
  2: iconst_2
  3: istore_1
  4: iload_0 // 加載第一個(gè)數(shù)據(jù)入操作數(shù)棧
  5: iload_1 // 加載第二個(gè)數(shù)據(jù)入操作數(shù)棧
  6: iadd // 將兩個(gè)數(shù)相加,結(jié)束入操作數(shù)棧
  7: istore_2 // 將結(jié)果出棧,存到局部變量表
  8: iload_2 // 加載它入操作數(shù)棧
  9: ireturn // 返回

 public static void main(java.lang.String[]);
 Code:
  0: getstatic  #2     // Field java/lang/System.out:Ljava/io/PrintStream;
  3: invokestatic #3     // Method hello:()I
  6: invokevirtual #4     // Method java/io/PrintStream.println:(I)V
  9: return
}

對(duì)于上面的匯編文件,我們是可以看的懂的,而且我們需要,匯編語(yǔ)言可以直接在計(jì)算機(jī)上運(yùn)行,我想jvm應(yīng)該也是把class文件生成對(duì)應(yīng)操作系統(tǒng)的匯編文件,然后交給操作系統(tǒng)去執(zhí)行吧!

總結(jié)

以上所述是小編給大家介紹的java中jvm虛擬機(jī)棧的作用,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • 詳解Java中的靜態(tài)代理模式

    詳解Java中的靜態(tài)代理模式

    這篇文章主要為大家介紹了Java中的靜態(tài)代理模式,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-12-12
  • MyBatis?超詳細(xì)講解動(dòng)態(tài)SQL的實(shí)現(xiàn)

    MyBatis?超詳細(xì)講解動(dòng)態(tài)SQL的實(shí)現(xiàn)

    動(dòng)態(tài)?SQL?是?MyBatis?的強(qiáng)大特性之一。如果你使用過(guò)?JDBC?或其它類(lèi)似的框架,你應(yīng)該能理解根據(jù)不同條件拼接?SQL?語(yǔ)句有多痛苦,例如拼接時(shí)要確保不能忘記添加必要的空格,還要注意去掉列表最后一個(gè)列名的逗號(hào)。利用動(dòng)態(tài)?SQL,可以徹底擺脫這種痛苦
    2022-03-03
  • Java JTable 實(shí)現(xiàn)日歷的示例

    Java JTable 實(shí)現(xiàn)日歷的示例

    這篇文章主要介紹了Java JTable 實(shí)現(xiàn)日歷的示例,幫助大家更好的理解和學(xué)習(xí)Java jtable的使用方法,感興趣的朋友可以了解下
    2020-10-10
  • spring 整合mybatis后用不上session緩存的原因分析

    spring 整合mybatis后用不上session緩存的原因分析

    因?yàn)橐恢庇胹pring整合了mybatis,所以很少用到mybatis的session緩存。什么原因呢?下面小編給大家介紹spring 整合mybatis后用不上session緩存的原因分析,需要的朋友可以參考下
    2017-02-02
  • springBoot使用openfeign來(lái)遠(yuǎn)程調(diào)用的實(shí)現(xiàn)

    springBoot使用openfeign來(lái)遠(yuǎn)程調(diào)用的實(shí)現(xiàn)

    這篇文章主要介紹了springBoot使用openfeign來(lái)遠(yuǎn)程調(diào)用的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • hadoop 詳解如何實(shí)現(xiàn)數(shù)據(jù)排序

    hadoop 詳解如何實(shí)現(xiàn)數(shù)據(jù)排序

    在很多業(yè)務(wù)場(chǎng)景下,需要對(duì)原始的數(shù)據(jù)讀取分析后,將輸出的結(jié)果按照指定的業(yè)務(wù)字段進(jìn)行排序輸出,方便上層應(yīng)用對(duì)結(jié)果數(shù)據(jù)進(jìn)行展示或使用,減少二次排序的成本
    2022-02-02
  • Spring AOP 與代理的概念與使用

    Spring AOP 與代理的概念與使用

    大家知道我現(xiàn)在還是一個(gè) CRUD 崽,平時(shí)用 AOP 也是 CV 大法。最近痛定思痛,決定研究一下 Spring AOP 的原理。 這里寫(xiě)一篇文章總結(jié)一下。主要介紹 Java 中 AOP 的實(shí)現(xiàn)原理,最后以?xún)蓚€(gè)簡(jiǎn)單的示例來(lái)收尾。
    2020-10-10
  • Spring aop 如何通過(guò)獲取代理對(duì)象實(shí)現(xiàn)事務(wù)切換

    Spring aop 如何通過(guò)獲取代理對(duì)象實(shí)現(xiàn)事務(wù)切換

    這篇文章主要介紹了Spring aop 如何通過(guò)獲取代理對(duì)象實(shí)現(xiàn)事務(wù)切換的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Spring Cloud Alibaba 本地調(diào)試介紹及方案設(shè)計(jì)

    Spring Cloud Alibaba 本地調(diào)試介紹及方案設(shè)計(jì)

    為了解決 本地調(diào)試 的問(wèn)題,本文實(shí)現(xiàn)了一種簡(jiǎn)單實(shí)用的策略,可以通過(guò) Nacos 動(dòng)態(tài)配置服務(wù)路由,還可以基于用戶(hù),部門(mén),組織等級(jí)別配置服務(wù)路由,實(shí)現(xiàn) 本地調(diào)試 的同時(shí),實(shí)際上也實(shí)現(xiàn) 灰度發(fā)布,感興趣的朋友跟隨小編一起看看吧
    2021-07-07
  • javaFX實(shí)現(xiàn)五子棋小游戲

    javaFX實(shí)現(xiàn)五子棋小游戲

    這篇文章主要為大家詳細(xì)介紹了javaFX實(shí)現(xiàn)五子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07

最新評(píng)論