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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 海贼王019 中级黑马   /  2015-4-11 21:26  /  309 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这个不是应该输出一个字符串吗?为何是一个哈希码值呢

2015-04-11_200857.png (85.3 KB, 下载次数: 8)

2015-04-11_200857.png

6 个回复

倒序浏览
输出的是一个字符串呀,
之所以会是你说的字符串"[I@123123"什么的
是因为 传入的i 是地址值。
你是将i的地址值转换为字符串而已。
回复 使用道具 举报
本帖最后由 sisel 于 2015-4-11 21:49 编辑

这里相当于返回的是int[]类型的i.toString(); 而char[]没有问题是因为valueOf方法重载了这种参数,但是没有int[]的重载,所以把他作为Object处理了
回复 使用道具 举报
sisel 发表于 2015-4-11 21:48
这里相当于返回的是int[]类型的i.toString(); 而char[]没有问题是因为valueOf方法重载了这种参数,但是没有 ...

好像明白了点什么
回复 使用道具 举报
突然世界晴 发表于 2015-4-11 21:42
输出的是一个字符串呀,
之所以会是你说的字符串"[I@123123"什么的
是因为 传入的i 是地址值。

没太看懂啊,:(
回复 使用道具 举报
就是说int类型的变量的地址值,@是在。。。的意思。
就是说int类型的变量的地址在123123
回复 使用道具 举报
    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马