TA的每日心情 | 开心 2021-12-13 21:45 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
|
以下内容来自《java特种兵》
类型字符
对应类型
说明
B
byte
代表字节,但不是Byte的意思
Z
boolean
代表布尔值,同样不是Boolean值
S
short
C
char
I
int
J
long
F
float
D
double
V
void
没有返回值
LClassName;
Reference
引用类,例如String被标识为:Ljava/lang.String;
[
Array Reference
数组的引用,例如double[][]被标识为:[[D;String[]被标识为:[Ljava.lang.String;
以上是在字节码中的规范定义。
之前用jmap命令查看java应用中的对象内容的时候,输出的一堆东西看不懂,但是对照着上面的规范之后就很清晰明了了,
1.用java应用
- [code][app@localhost ~]$ jps -l
- 17439 sun.tools.jps.Jps
- 31456 com.test.bootstrap.Main
- [app@localhost ~]$
复制代码 [/code]
2.输入命令- jmap -histo:live 31456|more
复制代码
- [code][app@localhost ~]$ jmap -histo:live 31456|more
- num #instances #bytes class name
- ----------------------------------------------
- 1: 206707 14594424 [C
- 2: 69903 9904328 <constMethodKlass>
- 3: 69903 8959328 <methodKlass>
- 4: 6543 7538872 <constantPoolKlass>
- 5: 206312 4951488 java.lang.String
- 6: 6543 4829504 <instanceKlassKlass>
- 7: 5680 4465248 <constantPoolCacheKlass>
- 8: 17715 2113904 [B
- 9: 54203 1734496 java.lang.ref.WeakReference
- 10: 2882 1486608 <methodDataKlass>
- 11: 39774 1272768 java.util.concurrent.ConcurrentHashMap$HashEntry
- 12: 30530 1221200 java.util.LinkedHashMap$Entry
- 13: 22637 905480 java.lang.ref.SoftReference
- 14: 14081 788536 java.beans.MethodDescriptor
- 15: 21827 754632 [Ljava.lang.Object;
- 16: 7799 684168 [Ljava.util.HashMap$Entry;
- 17: 6978 682856 java.lang.Class
- 18: 12115 678440 java.util.LinkedHashMap
- 19: 28127 675048 java.beans.MethodRef
- 20: 8424 673920 java.lang.reflect.Method
- 21: 8810 577704 [S
- 22: 7702 561816 [I
- 23: 10000 530096 [[I
复制代码 [/code]
像以上内容的、等等就能知道具体的含义了,char数组引用和int[][]引用。
|
|