Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does the class class [B represents in Java?

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?

like image 741
erotsppa Avatar asked Sep 23 '09 14:09

erotsppa


People also ask

What is meaning of class <?> In Java?

A class — in the context of Java — is a template used to create objects and to define object data types and methods. Classes are categories, and objects are items within each category. All class objects should have the basic class properties.

What is class and class in Java?

Instances of the class Class represent classes and interfaces in a running Java application. An enum is a kind of class and an annotation is a kind of interface. Every array also belongs to a class that is reflected as a Class object that is shared by all arrays with the same element type and number of dimensions.


2 Answers

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.

like image 118
Aaron Digulla Avatar answered Oct 12 '22 22:10

Aaron Digulla


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

like image 34
Rob Di Marco Avatar answered Oct 12 '22 22:10

Rob Di Marco