黑马程序员技术交流社区

标题: java 基础问题 [打印本页]

作者: ﹊佑雨时杰↘    时间: 2014-4-24 16:35
标题: java 基础问题
int [] a1 = new int []{2,4};
                String [] a4 = new String [] {"tyr","vcx","asa","das"};
                System.out.println(Arrays.asList(1,2));
                System.out.println(Arrays.asList(a1));
                System.out.println(Arrays.asList(a4));
打印结果:
[1, 2]
[[I@391b0c]
[tyr, vcx, asa, das]


  为什么红色部分打印的不是int 元素,, 而是 哈希值

作者: 万坤    时间: 2014-4-24 17:34
本帖最后由 万坤 于 2014-4-24 17:37 编辑

数组a1的应该改为Integer类型,Arrays.asList中的参数泛型的,基本类型是不能作为泛型的参数,按道理应该使用包装类型,
作者: 龙健    时间: 2014-4-24 17:59
首先你要明白,在java中分为基本类型和引用类型。基本类型就是我们常见的int、long、float、double、char、boolean等,而引用类型说简单点就是一个类,比如常见的String,File等。你的原意是要将一个数组里面的int数据转换成为Arraylist,里面接受的是一个对象(也就是引用),数组整体是一个对象,Arraylist就把整个数组当做事一个对象处理,所以得到的不是你想得到的int数组里面的数据,而是这个int数组的hash值,也就是这个数组的基本信息。
希望可以帮到你,,,,,,,,随便求一下技术分
作者: 大恶魔先森~    时间: 2014-4-24 18:15
println函数的内部机制,重载了九次,包括基本数据类型,char类型和Stirng类型一共九个。但是没有int数组,只有int类型的,所以Arrays.asList(a1)打印是该数组第一个元素在内存中的地址println 方法:
[size=-1] void
println(boolean x)
          打印 boolean 值,然后终止行。
[size=-1] void
println(char x)
          打印字符,然后终止该行。
[size=-1] void
println(char[] x)
          打印字符数组,然后终止该行。(找到了char数组的打印方法)
[size=-1] void
println(double x)
          打印 double,然后终止该行。
[size=-1] void
println(float x)
          打印 float,然后终止该行。
[size=-1] void
println(int x)
          打印整数,然后终止该行。
[size=-1] void
println(long x)
          打印 long,然后终止该行。
[size=-1] void
println(Object x)
          打印 Object,然后终止该行。
[size=-1] void
println(String x)
          打印 String,然后终止该行。
不存在打印int型数组。


  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2