数组的创建
int[] array1 = new int[3];
double array2 = new double[5];
String[] array3 = new String[5];
数组的初始化
//动态初始化
int[] array = new int[10];
//静态初始化,虽然没有指定数组的元素,编译器在编译时会根据{}中元素的个数来确定数组的元素
int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};
double[] array2 = new double[]{1.0, 2.0, 3.0, 4.0, 5.0};
String[] array3 = new String[]{"hello", "Java", "!!!"};
//静态初始化可以简写,省去后面的 new int[] 或其他类型的
int[] array1 = {0,1,2,3,4,5,6,7,8,9};
double[] array2 = {1.0, 2.0, 3.0, 4.0, 5.0};
String[] array3 = {"hello", "Java", "!!!"};
数组在内存中的存储
array 是数组类型的引用变量,其内部保存的内容可以简单理解是数组在堆空间中的首地址
例子
public static void func() {
int[] array1 = new int[3];
array1[0] = 10;
array1[1] = 20;
array1[2] = 30;
int[] array2 = new int[]{1,2,3,4,5};
array2[0] = 100;
array2[1] = 200;
array1 = array2;
array1[2] = 300;
array1[3] = 400;
array2[4] = 500;
for (int i = 0; i < array2.length; i++) {
System.out.println(array2[i]);
}
}
其中 array1 = array2 意味着 array1 这个引用指向了 array2 这个引用所指向的对象
所以 array1[2] = 300; 会改变原来 array2 引用指向的数组的第3个元素的值