首先先查阅API,可以知道Object类中
toString方法是返回类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制(地址值)表示组成。
而以下代码:
package com.hei.lixi;
public class Test15_Array {
public static void main(String[] args) {
A:{
System.out.println("A:");
int[] i = {1,23,4,5};
System.out.println(i.toString());
}
B:{
System.out.println("B:");
byte[] b = {97,98,99,100,101};
System.out.println(b.toString());
}
C:{
System.out.println("C:");
byte[] b = {97,98,99,100,101};
String strb = new String(b);
System.out.println(strb);
}
D:{
System.out.println("D:");
char[] c = {'4','1','5','4','3','2'};
System.out.println(c.toString());
}
E:{
System.out.println("E:");
char[] c = {'4','1','5','4','3','2'};
String strc = new String(c);
System.out.println(strc);
}
}
}
输出结果为
A:
[I@bcda2d
B:
[B@97d01f
C:
abcde
D:
[C@e0a386
E:
415432
可以看出,当一个类型转成String型时,输出的是他本身字符串,通过查阅API,String类中重写了toString方法如下:
得出结论,当调用的toString方法是Object类中的方法时,输出值为地址值,而将类型转换成String类时,就会调用String类中重写的方法
则输出本身字符串,其中byte在转成String型时,会转码,所以97,98,99,100,101——>abcde.
|
|