IDEA使用jclasslib Bytecode Viewer查看jvm字节码

学习jvm的时候,想查看字节码和局部变量表,可以使用idea安装jclasslib Bytecode View插件查看。

(1)安装工具:

安装完成后需要重启idea.

(2)准备一段代码,编译运行

java 复制代码
package com.test.bytecodeview;

public class ByteCodeView {

    public static void main(String[] args) {
        int a = 10 ;
        int b = 20 ;
        int c = a +b;
        System.out.println(c);
    }
}

(3)找到编译后的class文件,选择view,Show Bytecode With jclasslib

(4) 查看字节码

这里有行号表(LineNumberTable)和局部变量表(LocalVariableTable)

局部变量表由Start(起始PC)、Slot(序号)、Name(名称)、Length(长度)构成。

操作数栈存储每步骤所有的相关的值。例如i

java 复制代码
int c = a + b ; 

操作数栈会放入a的值(10),b的值(20)
a与b相加获得30.
操作舒栈写入30.
系统将30赋予c
相关推荐
半旧夜夏5 分钟前
#3:Maven进阶与私服搭建
java·maven
计算机毕设定制辅导-无忧学长22 分钟前
InfluxDB 集群部署与高可用方案(二)
java·linux·前端
SimonKing22 分钟前
Mysql分页:高效处理海量数据的核心技术
java·后端·程序员
寻星探路35 分钟前
常用排序方法
java·开发语言·算法
青云交38 分钟前
Java 大视界 -- 基于 Java 的大数据实时流处理在工业物联网设备故障预测与智能运维中的应用(384)
java·大数据·物联网·flink·设备故障预测·智能运维·实时流处理
半桔1 小时前
【STL源码剖析】从源码看 vector:底层扩容逻辑与内存复用机制
java·开发语言·c++·容器·stl
慕y2741 小时前
Java学习第一百零九部分——Jenkins(一)
java·学习·jenkins
悟能不能悟1 小时前
cdn是什么
java
爱科研的瞌睡虫1 小时前
C++线程中 detach() 和 join() 的区别
java·c++·算法
每天的每一天2 小时前
分布式文件系统05-生产级中间件的Java网络通信技术深度优化
java·开发语言·中间件