A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© ﹊佑雨时杰↘ 中级黑马   /  2014-4-24 16:35  /  917 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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 21:57

4 个回复

倒序浏览
本帖最后由 万坤 于 2014-4-24 17:37 编辑

数组a1的应该改为Integer类型,Arrays.asList中的参数泛型的,基本类型是不能作为泛型的参数,按道理应该使用包装类型,
回复 使用道具 举报
首先你要明白,在java中分为基本类型和引用类型。基本类型就是我们常见的int、long、float、double、char、boolean等,而引用类型说简单点就是一个类,比如常见的String,File等。你的原意是要将一个数组里面的int数据转换成为Arraylist,里面接受的是一个对象(也就是引用),数组整体是一个对象,Arraylist就把整个数组当做事一个对象处理,所以得到的不是你想得到的int数组里面的数据,而是这个int数组的hash值,也就是这个数组的基本信息。
希望可以帮到你,,,,,,,,随便求一下技术分

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
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型数组。


  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马