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

格子、 发表于 2014-6-12 19:23
int[] arr={1,2};是动态初始化了一个数组,并且直接进行了赋值,所以没有错误!!!
arr={1};这句就很搞 ...

那如果想你说的那样 :那请看下面
  1. int[] arr=new int[]{1,2};
  2. arr =new int[]{2};
复制代码
照你说的,这样写是不会通过编译的,但是这样写是对的。
回复 使用道具 举报
HF_Opticalix 发表于 2014-6-12 23:15
一句话 arr是引用类型 只能被对象所指向! 所以arr = {1} 是不允许的
int[] arr={1,2}; 之所以这个可以,是 ...

既然arr是引用类型,那么arr={1}; {1}也是一个对象,就像你说的相当于new int[]{1}那摩就应该合理啊
回复 使用道具 举报
ixiangfeng 发表于 2014-6-12 23:07
arr代表的是一个地址,一个引用,第二句话把一个具体的对象赋值给一个引用,我觉得是这里出的问题吧 ...

引用类型的变量就是用来指定对象的啊
回复 使用道具 举报
西门吹风 发表于 2014-6-12 22:53
int[] arr={1,2};
arr={1};  //{1}不是数组吧,应该是arr=new int[]{1}

那照你说{1,2}也不是数组?
回复 使用道具 举报
云的牧羊人 发表于 2014-6-12 19:31
你是想给arr数组再赋值个1还是什么意思?arr数组初始化一次后,已经存在于内存中了,你举得例子中已经规定 ...

我的意思是arr是一个引用类型变量,先初始化一个值后,在用arr这个变量去指向一个新的数组,按道理是可以的,把arr={1}这句改成arr=new in[]{1} 是可以的。。
回复 使用道具 举报
rr代表的是一个地址,一个引用,第二句话把一个具体的对象赋值给一个引用,是这样的
回复 使用道具 举报
cain 中级黑马 2014-6-14 15:12:19
27#
学习了啊
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马