怎么使用IDEA查看java文件编译后的字节码内容
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍"怎么使用IDEA查看java文件编译后的字节码内容"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么使用IDEA查看java文件编译后的字节
千家信息网最后更新 2025年01月18日怎么使用IDEA查看java文件编译后的字节码内容
这篇文章主要介绍"怎么使用IDEA查看java文件编译后的字节码内容"的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇"怎么使用IDEA查看java文件编译后的字节码内容"文章能帮助大家解决问题。
首先编写一个java类 StringDemo1.java
public class StringDemo1 { public static void main(String[] args) { String str1 = "aaa" + "bbb"; System.out.println(str1); String str2 = "ccc"; str2 += "ddd"; System.out.println(str2); }}
经过编译后,生成 StringDemo1.class文件
使用IDEA查看编译之后的文件内容:
//// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decompiler)//package jdk.java.lang.string;public class StringDemo1 { public StringDemo1() { } public static void main(String[] args) { String str1 = "aaabbb"; System.out.println(str1); String str2 = "ccc"; str2 = str2 + "ddd"; System.out.println(str2); }}
可以看出内容已经是经过IDEA反编译之后的了,并不能看到字节码内容。
使用jclasslib反编译工具
在IDEA中搜索插件jclasslib bytecode viewer,然后进行安装,重启IDEA。
再次打开StringDemo1.java文件,在IDEA菜单栏上打开View -> Show Bytecode,即可以看到字节码文件内容:
// class version 52.0 (52)// access flags 0x21public class jdk/java/lang/string/StringDemo1 { // compiled from: StringDemo1.java // access flags 0x1 public()V L0 LINENUMBER 8 L0 ALOAD 0 INVOKESPECIAL java/lang/Object. ()V RETURN L1 LOCALVARIABLE this Ljdk/java/lang/string/StringDemo1; L0 L1 0 MAXSTACK = 1 MAXLOCALS = 1 // access flags 0x9 public static main([Ljava/lang/String;)V L0 LINENUMBER 11 L0 LDC "aaabbb" ASTORE 1 L1 LINENUMBER 12 L1 GETSTATIC java/lang/System.out : Ljava/io/PrintStream; ALOAD 1 INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/String;)V L2 LINENUMBER 15 L2 LDC "ccc" ASTORE 2 L3 LINENUMBER 16 L3 NEW java/lang/StringBuilder DUP INVOKESPECIAL java/lang/StringBuilder. ()V ALOAD 2 INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder; LDC "ddd" INVOKEVIRTUAL java/lang/StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder; INVOKEVIRTUAL java/lang/StringBuilder.toString ()Ljava/lang/String; ASTORE 2 L4 LINENUMBER 17 L4 GETSTATIC java/lang/System.out : Ljava/io/PrintStream; ALOAD 2 INVOKEVIRTUAL java/io/PrintStream.println (Ljava/lang/String;)V L5 LINENUMBER 18 L5 RETURN L6 LOCALVARIABLE args [Ljava/lang/String; L0 L6 0 LOCALVARIABLE str1 Ljava/lang/String; L1 L6 1 LOCALVARIABLE str2 Ljava/lang/String; L3 L6 2 MAXSTACK = 2 MAXLOCALS = 3}
JDK版本映射
JDK版本 | class版本 |
---|---|
J2SE 8 | 52 |
J2SE 7 | 51 |
J2SE 6.0 | 50 |
J2SE 5.0 | 49 |
JDK 1.4 | 48 |
JDK 1.3 | 47 |
JDK 1.2 | 46 |
JDK 1.1 | 45 |
关于"怎么使用IDEA查看java文件编译后的字节码内容"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注行业资讯频道,小编每天都会为大家更新不同的知识点。
内容
文件
编译
字节
版本
知识
行业
不同
实用
再次
实用性
实际
工具
插件
文章
方法
更多
案例
知识点
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
国三网络技术通过标准
汽车移动软件开发
计算机系统中如何加强数据库
中山家教平台软件开发
小蓝本网络技术
上海威寻网络技术有限公司介绍
怎样修复网络安全风险
网络安全湘潭大学
认真抓好公安网络安全工作
未成年人网络安全状况
山东浙商互联网科技
软件开发八大架构是哪些
软件开发判决书
阿里云服务器安全白名单
西安软件开发培训班
你如何理解计算机网络技术
打车软件开发小公司
绝地求生服务器排名怎么看
数据库中子窗体能不能存储数据
vs2015 数据库
时空信息云平台 块数据库
静安区数字视频系统服务器
腾讯云如何查看数据库
政党数据库
网络安全综合治理校园
梦幻西游转服务器查询
合肥中新网络安全
domino 分区服务器配置
学电脑网络技术这方面好吗
可视化软件开发