黑马程序员技术交流社区
标题:
小问题 求解答
[打印本页]
作者:
进击的蜗牛
时间:
2015-7-13 15:21
标题:
小问题 求解答
int[] a1 = new int[]{1,2,3};
String[] a4 = new String[]{"111","222","333"};
System.out.println(a1.toString()); [I@1d5550d
System.out.println(a4.toString()); [Ljava.lang.String;@c2ea3f
System.out.println(Arrays.toString(a1)); [1, 2, 3]
System.out.println(Arrays.toString(a4)); [111, 222, 333]
//Arrays.toString 和 toString 的区别是什么?
System.out.println(Arrays.asList(a1)); [[I@1d5550d]
System.out.println(Arrays.asList(a4)); [111, 222, 333]
//
这两个不同的原理是什么?
作者:
耀阳圣尊
时间:
2015-7-13 16:24
Arrays.toString是把所数组转换成字符串。
而toString呢,所有的类都继承Object类,我们要重写它的toString方法。如果不重写的话,打印的是内存地址。
作者:
你好我是潘机智
时间:
2015-7-13 16:34
首先数组调用toString()方法是输出数组的地址值
Arrays.toString(),返回的是数组的字符串表现形式
as.list() 方法
static <T> List<T> asList(T... a)
asList()方法在JDK1.4版本中,接收的Object类型的数组,
而String[]可以作为Object数组传入,因为String是Object类型的,
但是int[]不可以作为Object数组传入,int不是Object类型的,所以只能按照JDK1.5版本来处理。
在JDK1.5版本中,需要传入的是一个可变参数,所以int[]就被当作是一个object,
也就是一个参数,而不是数组传入,所以打印的结果还是跟直接打印int[]一样。
自己写的 希望你能理解 学到高新技术,反射那里会讲。不要着急,慢慢看视频
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2