调用print方法传入一个对象打印输出时,会默认调用对象的toString方法,若对象没有覆写toString方法,则默认调用Object的toString方法。
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
Class.getName方法以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称
- 如果此类对象表示的是非数组类型的引用类型,则返回该类的二进制名称
- 如果此类对象表示一个基本类型或 void,则返回的名字是一个与该基本类型或 void 所对应的 Java 语言关键字相同的 String
- 如果此类对象表示一个数组类,则返回’[’ +元素类型名
元素类型表
Element Type | Encoding |
---|---|
boolean | Z |
byte | B |
char | C |
class or interface | L< classname > |
double | D |
float | F |
int | I |
long | J |
short | S |
类或接口名 classname 是上面指定类的二进制名称、
示例:
String.class.getName()
returns “java.lang.String”
byte.class.getName()
returns “byte”
(new Object[3]).getClass().getName()
returns “[Ljava.lang.Object;”
(new int[3][4][5][6][7][8][9]).getClass().getName()
returns “[[[[[[[I”