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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨曾荣 中级黑马   /  2012-2-22 09:21  /  1388 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

定义俩个数组
int[]a1=new int[3];
String[]a2=new String[4];
Object[] obj1=a1;
Object[] obj2=a2;
为啥Object[] obj1=a1;通不过,Object[] obj2=a2;通过了,而Object obj1=a1;又通过了呢

4 个回复

倒序浏览
首先a1是int型,也就是基本数据类型的数组,obj1[]是引用数据类型的数组,所以obj1的引用不能指向a1;
而a2是String型数组,也是引用数据类型,所以可以指向它.
Object obj1=a1中,a1 是数组的名字,是一个引用,和obj1同是一个引用,所以可以指向
回复 使用道具 举报
a1是基本类型数组,a2是引用数据类型,而obj1,obj2都是引用数据类型,显然第一个不能通过,第二可以通过
回复 使用道具 举报
学习了,还没有想到过这问题,基本数据类型跟引用类型不能互换
回复 使用道具 举报
在java中数组也是Object的子类。对于原始的数据类型与Object类是没有任何关系的,如果要将原始的数据类型变为对象,可以使用它们自己的包装类。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马