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
相关推荐
最初的↘那颗心21 小时前
Agent 实战:构建第一个 Agent 与记忆系统设计
java·大模型·agent·spring ai·记忆系统
程序猿_极客21 小时前
SpringBoot 三大参数注解详解:@RequestParam @RequestBody @PathVariable 区别及常用开发注解
java·spring boot·后端·面试八股文·springboot注释
小胖java21 小时前
校园通衢公告枢纽系统
java·spring boot
Crazy________21 小时前
docker4.8
java·开发语言·eureka
cch891821 小时前
Laravel 2.x:早期框架的奠基之路
java·开发语言
李小枫1 天前
webflux接收application/x-www-form-urlencoded参数
android·java·开发语言
搜佛说1 天前
比SQLite更快,比InfluxDB更轻:sfsDb的降维打击
jvm·数据库·物联网·架构·sqlite·边缘计算·iot
派大星酷1 天前
Cookie、Session、Token、JWT 原理 + 流程 + 区别 + 实战
java·网络
身如柳絮随风扬1 天前
MyBatis 插件原理详解:从拦截器到动态代理,手写一个分页插件
java·mybatis