What does the class class [B represents in Java?
Asked Answered
S

2

74

I am trying out a tool jhat here to test my java memory usage. It reads in a heap dump file and prints out information as html. However, the tables shows as follows:

Class Instance Count Total Size 
class [B  36585  49323821  
class [Lcom.sun.mail.imap.IMAPMessage;  790  16254336  
class [C  124512  12832896  
class [I  23080  11923504  
class [Ljava.lang.Object;  13614  6664528  
class java.lang.String  108982  2179640  
class java.lang.Integer  219502  878008  

What are those [B [C etc classes?

Samul answered 23/9, 2009 at 14:48 Comment(1)
#1041368Chalcopyrite
I
148

Those are arrays of primitives ([B == byte[], [C == char, [I == int). [Lx; is an array of class type x.

For a full list:

[Z = boolean
[B = byte
[S = short
[I = int
[J = long
[F = float
[D = double
[C = char
[L = any non-primitives(Object)

Also see the Javadoc for Class.getName.

Ivyiwis answered 23/9, 2009 at 14:51 Comment(2)
[J means ? [S means ?Anesthetic
See https://mcmap.net/q/224284/-l-array-notation-where-does-it-come-from for a full list or docs.oracle.com/javase/tutorial/reflect/special/… to determine the type for yourself.Ivyiwis
T
2

Looks like an array of characters (C)/bytes (B)/ints (I).

Thickleaf answered 23/9, 2009 at 14:51 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.