图片


代码:

public class Test {
   public int test(int i) {
       return i+1;
   }
}


用 Notepad++ 的Hex-Editor 插件打开 Test.class 文件

图片


下图是我手工标记的 Test.class 文件的结构

图片


理论依据来自上一篇文章《Class 文件的结构》


JDK 的 bin 目录中的工具 javap,是 Java class文件分解器,可以反编译,也可以查看 java 编译器生成的字节码等。

javap -help

用法: javap <options> <classes>
其中, 可能的选项包括:
  -help  --help  -?        输出此用法消息
  -version                 版本信息
  -v  -verbose             输出附加信息
  -l                       输出行号和本地变量表
  -public                  仅显示公共类和成员
  -protected               显示受保护的/公共类和成员
  -package                 显示程序包/受保护的/公共类
                           和成员 (默认)
  -p  -private             显示所有类和成员
  -c                       对代码进行反汇编
  -s                       输出内部类型签名
  -sysinfo                 显示正在处理的类的
                           系统信息 (路径, 大小, 日期, MD5 散列)
  -constants               显示静态最终常量
  -classpath <path>        指定查找用户类文件的位置
  -bootclasspath <path>    覆盖引导类文件的位置


使用下面命令查看 Test.class 里的字节码

javap -verbose Test.class


图片


通过上图可以验证手工标记的字节码信息基本正确。


更多相关文章

  1. Class 文件的结构
  2. MyBatis之Mapper XML 文件详解(二)-sql和入参
  3. MyBatis之Mapper XML 文件详解(三)-Result Maps
  4. MyBatis之Mapper XML 文件详解(一)
  5. Springboot实现文件上传下载
  6. MyBatis之Mapper XML 文件详解(六)-缓存配置
  7. MyBatis之Mapper XML 文件详解(四)-JDBC 类型和嵌套查询
  8. MyBatis之Mapper XML 文件详解(五)-自动映射查询结果
  9. 【不用框架】文件上传和下载

随机推荐

  1. 2个div内容交换不用innerHTML似乎办不到?
  2. 8.HTML5 CSS3 背景、边框与补丁相关属性
  3. 我想把桌子设置成全高和宽
  4. HTML中上传与读取图片或文件(input file)--
  5. 扩展htmlhelper.DropDownListFor 支持lis
  6. WebService Restful方式 Post请求Java无
  7. 将SVG与sass中的div的中心对齐
  8. 如何更改多个选定html值的名称?
  9. 【css】a标签的用法
  10. 用esp开发demo流程