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
相关推荐
摇滚侠1 天前
Spring Boot3零基础教程,SpringApplication 自定义 banner,笔记54
java·spring boot·笔记
青云交1 天前
Java 大视界 -- Java 大数据机器学习模型在游戏用户行为分析与游戏平衡优化中的应用
java·大数据·机器学习·数据存储·模型构建·游戏用户行为分析·游戏平衡优化
暗武逢天1 天前
Java导出写入固定Excel模板数据
java·导出数据·easyexcel·excel固定模板导出
摇滚侠1 天前
Spring Boot3零基础教程,KafkaTemplate 发送消息,笔记77
java·spring boot·笔记·后端·kafka
三无少女指南1 天前
深入理解JVM的安全点与安全区域
jvm·安全
fat house cat_1 天前
【netty】基于主从Reactor多线程模型|如何解决粘包拆包问题|零拷贝
java·服务器·网络·netty
青云交1 天前
Java 大视界 -- Java 大数据在智能教育学习社区互动模式创新与用户活跃度提升中的应用(426)
java·大数据·学习·flink 实时计算·智能教育社区·互动模式创新·用户活跃度
神奇的海马体1 天前
Tomcat隐藏版本号
java·tomcat
拜见老天師1 天前
使用mybatis-plus,实现将排序时,字段值为NULL的数据排在最后
java·mybatis
应茶茶1 天前
C++11 核心新特性:从语法重构到工程化实践
java·开发语言·c++