int[] arr = {1,2,3}是int[] arr = new int[]{1,2,3}简化形式,但是两者不能划等号。这种行式arr已经是数组初始化时定义了变量了,arr[0]=1;arr[1]=2;arr[2]=3;里面的数值不能再改变了。
举例来说就是:
int[] arr = {1,2,3};
show({1,2,3}); //它是调用具体的数值,但调用之后你不知道他是什么类型的,它有可能是int也有可能是byte,这和上面的定义int就不符合了。
int[] arr = new int[]{1,2,3}; //这种方式是新创建的数组,变量它是动态的,可以重新定义变量。
show(new int[]{1,2,3}); //这是调用的时候,已经说明了是创建一个int型的数组来调用的。然后里面是3个int型的数。
|