3种骚操作,教你查看 Java 字节码!

简介: 3种骚操作,教你查看 Java 字节码!

image.png在我们工作、学习、以及研究 JVM 过程当中,不可避免的要查看 Java 字节码,通过查看字节码可以了解一个类的编译结果,也能通过编译器层面来分析一个类的性能。


字节码文件是不能直接打开的,下面栈长教大家几种简单的方法如何查看 Java 字节码。


1、使用 javap 命令查看字节码

命令格式如下:


javap -c xxx.class


JDK 提供的了,不解释,来,演示操作一把:

$ javap -c Test.class
Compiled from "Test.java"
public class com.test.Test {
  public com.test.Test();
    Code:
       0: aload_0
       1: invokespecial #8                  // Method java/lang/Object."<init>":()V
       4: return
  public static void main(java.lang.String[]);
    Code:
       0: return
}

如上所示,可以看到 Test 类的的字节码。

2、Intellij IDEA 中查看字节码

Intellij IDEA 直接集成了一个工具菜单,可以直接查看字节码,打开 ByteCode 插件窗口方法如下:

View -> Show bytecode

image.png

image.png如图所示,可以看到 String 类的的字节码。


是不是很方便?


如果看不到这个菜单,那可能你当前的类没有编译,需要你编译一下。


不会用 Intellij IDEA 的可以关注公众号:Java技术栈,在后台回复:IDEA,可以获取栈长整理的历史教程,都是无废话干货。


想当初从 Eclipse 转 IDEA 数次都失败,现在早习惯了,说实话写代码是真智能,基友搭配,效率翻倍。


3、Eclipse 中查看字节码

在 Eclipse 中查看字节码稍显麻烦,需要安装插件,并打开插件窗口,安装和使用方式如下:

image.pngName: bytecode


Location: http://andrei.gmxhome.de/eclipse


安装完后需要重启 Eclipse 才能生效。


Eclipse 打开 ByteCode 插件窗口:


Window-> Show View -> Other -> Java -> Bytecode

如图所示,可以看到 String 类的的字节码。

当然,市面上还有很多其他的小工具可以查看字节码,这里就不再一一介绍了,有兴趣的可以去了解下,栈长介绍的这三种方式应该够用了吧。

看完有没有涨姿势呢?

老铁,可以拿出去装逼了,在看、转发一波!

相关文章
|
7天前
|
安全 Java 调度
Java编程时多线程操作单核服务器可以不加锁吗?
Java编程时多线程操作单核服务器可以不加锁吗?
21 2
|
11天前
|
存储 缓存 Java
java线程内存模型底层实现原理
java线程内存模型底层实现原理
java线程内存模型底层实现原理
|
15天前
|
缓存 Java 应用服务中间件
Java虚拟线程探究与性能解析
本文主要介绍了阿里云在Java-虚拟-线程任务中的新进展和技术细节。
|
21天前
|
存储 缓存 安全
【Java面试题汇总】多线程、JUC、锁篇(2023版)
线程和进程的区别、CAS的ABA问题、AQS、哪些地方使用了CAS、怎么保证线程安全、线程同步方式、synchronized的用法及原理、Lock、volatile、线程的六个状态、ThreadLocal、线程通信方式、创建方式、两种创建线程池的方法、线程池设置合适的线程数、线程安全的集合?ConcurrentHashMap、JUC
【Java面试题汇总】多线程、JUC、锁篇(2023版)
|
13天前
|
Java 开发者
Java中的多线程基础与应用
【9月更文挑战第22天】在Java的世界中,多线程是一块基石,它支撑着现代并发编程的大厦。本文将深入浅出地介绍Java中多线程的基本概念、创建方法以及常见的应用场景,帮助读者理解并掌握这一核心技术。
|
8天前
|
Java 调度
Java-Thread多线程的使用
这篇文章介绍了Java中Thread类多线程的创建、使用、生命周期、状态以及线程同步和死锁的概念和处理方法。
Java-Thread多线程的使用
|
15天前
|
Java
领略Lock接口的风采,通过实战演练,让你迅速掌握这门高深武艺,成为Java多线程领域的武林盟主
领略Lock接口的风采,通过实战演练,让你迅速掌握这门高深武艺,成为Java多线程领域的武林盟主
23 7
下一篇
无影云桌面