Java字节码

1. Java字节码概述

1.1 Java开发过程

  • 编写阶段:采用各种编辑工具,编写.java文件
  • 编译阶段:采用javac.exe对.java文件编译,产生.class文件
  • 运行阶段:采用java.exe加载.class文件运行

image-20221017232512358

1.2 Class文件

1.2.1 class文件:字节码(bytecode)文件

  • class文件是Java“一次编译,到处运行”的基础
  • class文件具备平台无关性,由JVM执行
  • 每个class文件包含了一个类或接口或模块的定义
  • class文件是一个二进制文件,由JVM定义class文件的规范
  • 任何满足这种规范的class文件都会被JVM加载运行
  • class文件可以由其他语言编译生成,甚至不用程序语言直接生成
  • JDK版本不同,所编译出.class文件略有不同

1.2.2 class文件内容

image-20221017232731662

1.2.3 class文件的学习

  • 字节码文件结构
    • 了解class文件的内部各个模块的组成
  • 字节码生成
    • javac,编译器API, 其他编译器API(如Eclipse JDT)
  • 字节码操作
    • 利用工具对字节码进行查看和编辑
  • 字节码增强
    • 使用Instrument对字节码进行转换
  • 字节码反编译和混淆
posted @ 2022-10-17 23:30  hunter-w  阅读(36)  评论(0编辑  收藏  举报