类的简单名称
Thread
类全名、二进制名、全限定名
是一个东西。
类全名:java.lang.Thread(用于日常的沟通表达)
二进制名:java.lang.Thread(Java 语言规范中的定义)
全限定名:java/lang/Thread(class 文件结构中的二进制名格式,在描述符中使用,只有非数组引用类型有)
由于历史原因,class 文件结构中的二进制名格式,跟 java 语言规范中定义的二进制名格式有所不同。
- Java 语言规范中定义的二进制名格式,使用
.作为分隔符。 - class 文件结构中的二进制名格式,使用
/作为分隔符。
描述符
分为字段描述符、方法描述符。
字段描述符,其实就是类型描述符,分为原始类型描述符、非数组引用类型描述符、数组引用类型描述符。
- 原始类型描述符:
C、D、F、I、J、S、Z - 非数组引用类型描述符:
L全限定名; - 数组引用类型描述符:
[自己元素类型的描述符
如:
int 的描述符:I
Thread 的描述符:Ljava/lang/Thread;
Thread[][][] 的描述符:[[[Ljava/lang/Thread;(是几维数组,就有几个 [)
参考:
https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.2
https://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html#jls-13.1

博客围绕 Java 展开,介绍了类的简单名称、全名、二进制名、全限定名,指出它们本质相同但因历史原因在不同规范中有不同格式。还阐述了描述符,包括字段描述符和方法描述符,字段描述符又分原始、非数组引用和数组引用类型描述符,并举例说明。

被折叠的 条评论
为什么被折叠?



