动态初始化
重新指定数组的长度,在创建数组时,直接指定数组中的数据元素的个数
定义格式(以int类型为例):
int[] array = new int[300];
赋值初始化:
for (int i = 0; i < 5; i++) {
array[i] = i;
}
动态数组支持初始化拆分
int[] arrayC;
arrayC = new int[5];
静态初始化
不指定数组的数据个数,而是直接将数组的内容进行指定
标准定义格式:
int[] array1 = new int[]{1,2,3,4};
- 虽然静态初始化没有直接告诉长度,但是根据大括号内容可以直接推算出长度。
- 静态数组标准定义支持初始化拆分
int[] arrayA;
arrayA = new int[] {11,12,13};
省略模式定义:
int[] array2 = {10,20,30};
静态数组的省略模式不支持初始化拆分
/*
int[] arrayB;
arrayB={20,30,40};
*/
这样的初始化方法是错误的
建议:
- 当不知道数组内容的时候,建议使用动态初始化数组
- 当知道数组内容的时候,建议使用静态初始化数组
JAVA的内存分化
一个数组的内存图
两个数组的内存图
两个数组指向同一个地址
代码如图:
内存图:
数组元素的反转交换
public class test01 {
public static void main(String[] args) {
int[] array = {10,20,30,40,50,60};
for(int i = 0; i < array.length;i++)
{
System.out.print(array[i]+" ");
}
System.out.println();
System.out.println("===============");
int min =0;
int max = array.length-1;
while(min < max)
{
int temp = array[min];
array[min] = array[max];
array[max] = temp;
min++;
max--;
}
for(int j=0;j<array.length;j++)
{
System.out.print(array[j]+" ");
}
}
}