数组和字符串的赋值?

int[] a = {1,2,3,4,5};
int[] b = {2,3,4,5,6};
b = a;
System.out.println(b);

数组只能通过遍历数组来赋值吗?上例中的b=a;这样直接赋值,我测试过不行(a,b只是数组的管理者而不是所有者)。

String w = "hello";
String s = "nihao";
s = w;
System.out.println(s);//输出了hello

同数组比较,这里的w,s不也是管理者嘛,为什么可以直接赋值?


fafagagag
浏览 1341回答 2
2回答

Judson_Rao

a和b属于数组引用类型,代表的是数组的存储地址,所以你打印出来的应该是a的地址;String代表的是字符串类型,可以直接赋初始值,赋初始值的时候已经实例化了。故可以复制。

慕无忌3156419

a,b是管理者,赋值之后不可以改变数值了,String是按照储存来引用的,也就是说W=S并不是直接赋值,而是改变了引用的地址。你按照存储地址的知识梳理一下就通了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java