java中字符串数组如何赋值?

String[] a = null;
String[] b = {","};
a = b;//正确语法
a={","};//错误语法,这是为什么啊?

变量初始化,和变量赋值是两个不同的语法。
数组初始化时,可以为null,{value1,value2,value3,....},或者赋予另一个数组的值:String[] b = a;

常量只能被初始化,一次,不能再次赋值;
非常量则可以进行赋值操作,赋值操作只能赋予以下情况:null,另一个数组的值。

lz的问题中,a={","}是一个初始化的语法,不是正确的赋值语法。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-09
String[] a = null;
String[] b = {","};
a = b;//正确语法
b已经被赋值了,所以堆栈里有这个,a是null,没有占用堆栈的,所以找不到。
第2个回答  2016-09-09
a是null啊,null能={","}这个吗追问

那为什么a=b就可以成立那?

追答

String[]b={'',''};这个b已经被构造器构造出来了,它的数据类型又和a相同,当然可以相等,a本身没有被构造出来,就不能直接复制。通俗一点的说就相当于,把b重新取了个名字换成了a,其实a和b就是同一个东西

本回答被提问者采纳
相似回答