class文件简介

简介: 可以直接把.class文件拖到eclipse中,看到内容。 图0-1 class文件内容示例 1.文件格式 (1) magic 在class文件开头的四个字节, 存放着class文件的魔数,为固定值0XCAFEBABE。若无,则 不能被JVM识别。 (2)minor_version 和 major_version 紧接着魔数的四个字节是class文件的此版本号和主版本号。

可以直接把.class文件拖到eclipse中,看到内容。


图0-1 class文件内容示例

1.文件格式

(1) magic
在class文件开头的四个字节, 存放着class文件的魔数,为固定值0XCAFEBABE。若无,则 不能被JVM识别。
(2)minor_version 和 major_version
紧接着魔数的四个字节是class文件的此版本号和主版本号。

2.类型表示

2.1 引用类型

L类型的全限定名;  
如Long类型对应的就是Ljava/lang/Long;

需要注意到,在表示全限定名时将点号替换成了“/”。

2.2 基本类型

每种基本数据类型都有一个大写字母做对应, void也有一个大写字符做对应。 下表是void和基本数据类型在描述符中的对应。

基本数据类型和void类型 类型的对应字符
byte B
char C
double D
float F
int I
long J
short S
boolean Z
void V

2.3 数组类型

若干个“[”  +  数组中元素类型的对应字符串  。如Object[][][]类型的对应字符串是: [[[Ljava/lang/Object; 
如double[][] 类型的对应字符串是: [[D

3.方法签名

(参数1类型 参数2类型 参数3类型 ...)返回值类型  
一些对照情况见下表。
方法描述符 方法声明
()I int getSize()
()Ljava/lang/String; String toString()
([Ljava/lang/String;)V void main(String[] args)
()V void wait()
(JI)V void wait(long timeout, int nanos)
(ZILjava/lang/String;II)Z boolean regionMatches(boolean ignoreCase, int toOffset, String other, int ooffset, int len)
([BII)I int read(byte[] b, int off, int len )
()[[Ljava/lang/Object; Object[][] getObjectArray()

4.反编译

eclipse有插件可以支持。
目录
相关文章
|
3月前
|
Java
java基础(4)public class 和class的区别及注意事项
本文讲解了Java中`public class`与`class`的区别和注意事项。一个Java源文件中只能有一个`public class`,并且`public class`的类名必须与文件名相同。此外,可以有多个非`public`类。每个类都可以包含一个`main`方法,作为程序的入口点。文章还强调了编译Java文件生成`.class`文件的过程,以及如何使用`java`命令运行编译后的类。
50 3
java基础(4)public class 和class的区别及注意事项
|
6月前
|
前端开发 Java
java加载class文件的原理
java加载class文件的原理
|
7月前
|
前端开发 JavaScript
前端 TS 快速入门之三:class 类
前端 TS 快速入门之三:class 类
90 1
ES6 class使用方法
ES6 class使用方法
69 0
ES6 从入门到精通 # 21:class 类的用法
ES6 从入门到精通 # 21:class 类的用法
78 0
ES6 从入门到精通 # 21:class 类的用法
|
Java 索引
Class文件结构分析
Class文件结构分析 1. Class文件的结构概览图 2. 每一项数据说明 类型 名称 数量 说明 u4 magic 1 魔数:确定一个文件是否是Class文件 u2 minor_version
110 0
|
存储 XML Java
JVM虚拟机-Class文件简介
JVM虚拟机-Class文件简介
141 0
JVM虚拟机-Class文件简介
|
Java
Java 中如何获取 classpath 下资源文件?
Java 中的资源有多种,如File,URL, InputStream等,本篇将介绍在Java中获取classpath下的资源文件的几种方式
667 0
|
JavaScript 前端开发 程序员
Class-总结 class 的基本用法和两个注意点|学习笔记
快速学习 Class-总结 class 的基本用法和两个注意点
190 0
|
Java 开发者
CLASSPATH环境属性 | 学习笔记
快速学习CLASSPATH环境属性
168 0
CLASSPATH环境属性 | 学习笔记