PS:毕业了将工作,学校学习的java知识由于近一年都在做前端,忘却了很多,在菜鸟教程上重新看一遍了,发现自身在数组这块的问题。来源于菜鸟教程的java数组测试题,侵权联系删除。
数组赋值
int[ ] a ={1,2,3,4,5}
int[ ] a=new int[5];
a={1,2,3,4,5}会提示错误Array constants can only be used in initializers
改为a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;
数组参数传递是引用传递
public class arrTest {
public static void main ( String[] args )
{
int a=3;
ChangeIt.doa(a);
System.out.println("int"+a); 3情况输出int 3
int[] myArray = {1, 2, 3, 4, 5};
ChangeIt.doIt( myArray );
for(int val:myArray)
System.out.print( val+" " ); 1情况输出1 2 3 4 5;
2情况输出12 2 3 4 5;
}
}
class ChangeIt{ //内部类
static void doIt( int[] z){
//z=null; 1情况
z[0]=12; //int z1=z; z1[0]=12 2情况
}
static void doa(int z){
z=12; 3情况
}
}
解释:java 基本数据类型传递参数时是值传递;引用类型传递参数时是引用传递 。数组是引用传递 ,但z = null 只是将引用z不指向任何对象 ,不会对原指向对象数据进行修改 。
附java数据类型分类(图片来源与网络):