# 复习定义
数组:一种容器,可以同时存放多个数据值
特点:
1.数组是一种引用数据类型
2.数组中的多个数据类型必须统一
3.数组的长度在程序运行期间不可改变
常见初始化方式:
1.动态(指定长度) 数据类型[] 数组名称 = new 数据类型[数组长度];
2.静态(指定内容) 数据类型[] 数组名称 = new 数据类型[]{数据1,数据2,数据3,...} 右侧数据的类型必须和左侧的数据类型保持一致
默认值:
整型数组 -- 0
浮点类型 -- 0.0
布尔类型 -- false
字符类型 -- 'u0000'
引用类型 -- null
# 初始化代码示例
package com.leerep.javabase.array;
public class ArrayInit {
public static void main(String[] args) {
// 静态 省略格式不能拆分
int[] arrayA = {1,2,3};
System.out.println(arrayA); //直接打印数组得到的是数组在内存中的哈希地址值
int[] arrayB;
arrayB = new int[] {4, 5, 6};
for (int i = 0; i < arrayB.length; i++) {
System.out.print(arrayB[i] + " ");
}
System.out.println();
//动态
int[] arrayC = new int [10];
int[] arrayD;
arrayD = new int[10];
for (int i = 0; i < 10; i++) {
System.out.println("arrayC[" + i + "]:" + arrayC[i] + " arrayD[" + i + "]:" + arrayD[i]);
}
}
}
# 逆转数组示例
package com.leerep.javabase.array;
import java.util.Arrays;
/*
* 逆转数组
* */
public class ArrayReverse {
public static void main(String[] args) {
int[] array = {1, 2, 3, 4, 5, 6};
array = array_reverse(array);
printArray(array);
System.out.println(Arrays.toString(array)); //toString的源码中采用StringBuilder b = new StringBuilder();
}
public static void printArray(int[] array) {
System.out.print("[");
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]);
if (i == array.length-1) {
System.out.println("]");
return;
}
System.out.print(", ");
}
}
public static int[] array_reverse(int[] array) {
int max = array.length-1;
for (int min = 0; min < max; min++, max--) {
int temp = array[min];
array[min] = array[max];
array[max] = temp;
}
return array;
}
}
# 常见错误演示
package com.leerep.javabase.array;
public class CommonError{
public static void main(String[] args) {
int[] arrayA = {1, 2, 3, 4};
System.out.println(arrayA.length); //4
// System.out.println(arrayA[4]); 数组下标越界
int[] arrayB = null;
// System.out.println(arrayB[0]); 数组只有进行new初始化后,才能使用,如果只是赋值为null,没有进行new创建,那么会报空指针异常
}
}