toString()
- toString() 表示一个对象的 “字符串表示”, 让我们可以方便地窥测一个对象里的属性(一般对象是立体的)
- 如果子类没有覆盖 toString 方法,则继承Object中的 toString,返回类的Class 信息
- 任意对象和字符串做连接(+),会自动调用该对象的 toString() 方法
java.lang.Object中的 toString()
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
Object 中默认返回该对象实现类的“类名+@+hashcode”值
java.lang.String中的 toString()
public String toString() {
return this;
}
可以看到,因为本身便是String,所以直接返回了自身
java.lang.Boolean中的 toString()
public String toString() {
return value ? "true" : "false";
}
根据自身的值返回 “true” 或 “false” 字符串
java.lang.Integer中的 toString()
public static String toString(int i, int radix) {
if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
radix = 10;
/* Use the faster version */
if (radix == 10) {
return toString(i);
}
if (COMPACT_STRINGS) {
byte[] buf = new byte[33];
boolean negative = (i < 0);
int charPos = 32;
if (!negative) {
i = -i;
}
while (i <= -radix) {
buf[charPos--] = (byte)digits[-(i % radix)];
i = i / radix;
}
buf[charPos] = (byte)digits[-i];
if (negative) {
buf[--charPos] = '-';
}
return StringLatin1.newString(buf, charPos, (33 - charPos));
}
return toStringUTF16(i, radix);
}
@HotSpotIntrinsicCandidate
public static String toString(int i) {
int size = stringSize(i);
if (COMPACT_STRINGS) {
byte[] buf = new byte[size];
getChars(i, size, buf);
return new String(buf, LATIN1);
} else {
byte[] buf = new byte[size * 2];
StringUTF16.getChars(i, size, buf);
return new String(buf, UTF16);
}
}
public String toString() {
return toString(value); //value 定义为 private final int value;
}
返回一个 String 对象,表示 Integer 的值。将值转换为带符号的十进制表示并作为字符串返回
另外,Integer 中的 toString() 方法可以接收表示转换基数(radix)的可选参数,如果不指定此参数,转换规则将是基于十进制。