日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jvm四:常量的本质含义以及助记符基本认识

發布時間:2025/6/15 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jvm四:常量的本质含义以及助记符基本认识 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.atChina.jvm; /* * 常量在編譯階段會存入到調用這個常量的方法所在的類的常量池中, * 本質上,調用類并沒有直接引用到定義常量的類,因此并不會觸發 * 定義常量的類的初始化, 因此也就不會執行靜態代碼塊的代碼 * * 如下代碼: 常量f="劉備",存放到了Test2的常量池中,之后Test2與Father2就沒有任何關系了 * 甚至,我們可以刪除Father2的class文件 * * bipush表示將單字節(-128至127)的常量值推送至棧頂 * sipush表示將一個短整形常量值(-32768至32767)推送至棧頂 * iconst_1 表示將int類型1推送至棧頂( iconst_0至iconst_5分表表示整形0至5) */ public class Test2 {public static void main(String[] args) {System.out.println(Father2.f);System.out.println(Father2.s);System.out.println(Father2.i);System.out.println(Father2.ii);System.out.println(Father2.iii);} }class Father2{public static final String f = "劉備";// 被final修飾了,所以f是一個常量public static final short s = 127;public static final int i = 32767;public static final int ii = 1;public static final int iii = 5;static{System.out.println("桃園結義");} }

通過javap -c 類路徑.類名 就可以反編譯class文件

? ?ldc助記符:

? ? ? ? ? 表示將int,float或是String類型的常量值從常量池中推送至棧頂

? ?bipush助記符:

表示將單字節(-128至127)的常量值推送至棧頂

? ?sipush助記符:

? ? ? ? ? ? ?表示將一個短整形常量值(-32768至32767)推送至棧頂

? ??iconst_1助記符:

? ? ? ? ? ? ? iconst_1 表示將int類型1推送至棧頂( iconst_0至iconst_5分表表示整形0至5)

javap -c com.atChina.jvm.Test2 Compiled from "Test2.java" public class com.atChina.jvm.Test2 extends java.lang.Object{ public com.atChina.jvm.Test2();Code:0: aload_01: invokespecial #1; //Method java/lang/Object."<init>":()V4: returnpublic static void main(java.lang.String[]);Code:0: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;3: ldc #4; //String 劉備5: invokevirtual #5; //Method java/io/PrintStream.println:(Ljava/lang/String;)V8: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;11: bipush 12713: invokevirtual #6; //Method java/io/PrintStream.println:(I)V16: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;19: sipush 3276722: invokevirtual #6; //Method java/io/PrintStream.println:(I)V25: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;28: iconst_129: invokevirtual #6; //Method java/io/PrintStream.println:(I)V32: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;35: iconst_536: invokevirtual #6; //Method java/io/PrintStream.println:(I)V39: return}

?

?

?

總結

以上是生活随笔為你收集整理的jvm四:常量的本质含义以及助记符基本认识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。