跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 看了下《深入虚拟机》相关章节,还是存在一些字节码的疑惑
未分類
3 5 月 2020

看了下《深入虚拟机》相关章节,还是存在一些字节码的疑惑

看了下《深入虚拟机》相关章节,还是存在一些字节码的疑惑

資深大佬 : lqw3030 18

  • 前几天咨询了大家字节码相关问题

  • 看了一遍《深入理解虚拟机》,部分指令和语法是明白了,但是依然存在一些疑惑

  • 在下面字节码中标出了,麻烦懂的朋友指点下

  • 多谢了

  • 类文件

package core.object_create;  public class ObjectTest {     private String name="v2";      public void hi(){         int i =777;     } }  
  • 字节码
// class version 56.0 (56) // access flags 0x21 public class core/object_create/ObjectTest {    // compiled from: ObjectTest.java    // access flags 0x2   private Ljava/lang/String; name    // access flags 0x1   public <init>()V    L0 //这里在申明什么     LINENUMBER 3 L0  //这个语法是啥意思     ALOAD 0     INVOKESPECIAL java/lang/Object.<init> ()V    L1     LINENUMBER 4 L1     ALOAD 0     LDC "v2"     PUTFIELD core/object_create/ObjectTest.name : Ljava/lang/String;     RETURN    L2     LOCALVARIABLE this Lcore/object_create/ObjectTest; L0 L2 0     MAXSTACK = 2     MAXLOCALS = 1    // access flags 0x1   public hi()V    L0     LINENUMBER 7 L0     SIPUSH 777     ISTORE 1    L1     LINENUMBER 8 L1     RETURN    L2     LOCALVARIABLE this Lcore/object_create/ObjectTest; L0 L2 0   //这句     LOCALVARIABLE i I L1 L2 1 //以及这句分别在申明什么     MAXSTACK = 1     MAXLOCALS = 2 }  

大佬有話說 (2)

  • 資深大佬 : penguinWWY

    你用的字节码查看工具把 LineNumberTable 和 LocalVariableTable 这两个表的内容解析了一下
    L0 、L1 应该表示一个 label,也就是一个标签
    `LINENUMBER ` 声明这个标签对应的行号
    `LOCALVARIABLE` 表示局部变量的名字、类型

  • 主 資深大佬 : lqw3030

    @penguinWWY 感谢

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具