Java中字段descriptor如何详细解析和应用?

更新于
2026-09-12 04:46:15
23阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关问答

有没有过反编译 Java class 文件时突然冒出一堆 B、I、 等符号,却在运行时收到类型错误?你可能会怀疑自己是不是写错了代码。比如你本想声明 int却不小心写成了 IntegerJVM 并不会欺骗你,它会直接把字段描述符显示为 Ljava/lang/Integer;老实说,,按理说,这类“低级”错误往往让人 debug 到怀疑人生。

从第一招来看,搞定基础类型——只记住 8 个字母即可

Java 的 8 种基本类型在 class 文件里都有一个固定的单字符描述符。把它们记成 “单词首字母” 就能轻松识别:

Java中字段descriptor如何详细解析和应用?
Java 基本类型描述符 记忆提示
byteB"B" 像 “Byte” 的首字母?
charC"C" 是 “Char”的首字母。
doubleD"D" 是 “Double”的首字母。
float"F" 是 “Float”的首字母。
int "I" 是 “Int”的首字母。
long "J" 看似不是 “L”,但 JVM 规定如此。
short "S" 是 “Short”的首字母。
boolean "Z" 可以记作 “Zero”。
阅读全文
标签:字段

有没有过反编译 Java class 文件时突然冒出一堆 B、I、 等符号,却在运行时收到类型错误?你可能会怀疑自己是不是写错了代码。比如你本想声明 int却不小心写成了 IntegerJVM 并不会欺骗你,它会直接把字段描述符显示为 Ljava/lang/Integer;老实说,,按理说,这类“低级”错误往往让人 debug 到怀疑人生。

从第一招来看,搞定基础类型——只记住 8 个字母即可

Java 的 8 种基本类型在 class 文件里都有一个固定的单字符描述符。把它们记成 “单词首字母” 就能轻松识别:

Java中字段descriptor如何详细解析和应用?
Java 基本类型描述符 记忆提示
byteB"B" 像 “Byte” 的首字母?
charC"C" 是 “Char”的首字母。
doubleD"D" 是 “Double”的首字母。
float"F" 是 “Float”的首字母。
int "I" 是 “Int”的首字母。
long "J" 看似不是 “L”,但 JVM 规定如此。
short "S" 是 “Short”的首字母。
boolean "Z" 可以记作 “Zero”。
阅读全文
标签:字段