Java堆转储中的那些奇怪的类名是什么意思?
我正在尝试使用jmap和jhat跟踪Java进程中的内存泄漏。每次执行此操作时,都会看到针对特定对象类型的那些怪异的表示法,例如[S
字符串数组和[C
Character数组。我永远都不记得这意味着什么,而且很难用谷歌搜索这些东西。
( :证明我的观点,原来[S
是short [C
数组,是char数组。)
有人愿意制作一张列出所有不同类名及其含义的表吗?还是将我指向这样的桌子?
我特别想知道什么[Ljava.lang.Object;
意思。
回答:
您会在Class.getName()下找到记录的完整列表:
如果该类对象表示的引用类型不是数组类型,则返回该类的二进制名称,如 Java™语言规范第二版 所指定。
如果此类对象表示原始类型或void,则返回的名称
String
等于与原始类型或void对应的Java语言关键字。如果此类对象表示一类数组,则名称的内部形式由元素类型的名称组成,其后是一个或多个代表数组嵌套深度的’[‘字符。元素类型名称的编码如下:
Element type codeBoolean Z
Byte B
C character
Class or interface L_ Class name_ ;
Double D
Floating f
I
Long J
Short s
以上是 Java堆转储中的那些奇怪的类名是什么意思? 的全部内容, 来源链接: utcz.com/qa/410658.html