数组的动态初始化
- 定义数组的时候只确定元素的类型和数组的长度,之后再存入具体数据。
格式:
数据类型[] 数组名 = new 数据类型[长度];
int[] arr = new int[3];
//后赋值
arr[0] = 10;
System.out.println(arr[0]); //10
代码演示如下:
public class ArraryDemo4 { public static void main(String[] args) { //目标:学会动态初始化数组的定义和使用 double[] scores = new double[3];//[0.0, 0.0, 0.0] // 0 1 2 //赋值 scores[0] = 99.9; System.out.println(scores[0]); System.out.println(scores[2]); String[] names = new String[90]; names[0] = "鸟儿"; names[2] = "敲代码的鸟儿"; System.out.println(names[0]); System.out.println(names[1]);//null System.out.println(names[2]); } }
问:两种数组定义时的特点和场景有什么区别?
- 当前已经知道存入的元素值,用静态初始化。
- 当前还不清楚要存入哪些数据,用动态初始化。
元素默认值规则:
代码演示如下:
public class ArrayDemo5 { public static void main(String[] args) { //目标:掌握动态初始化元素默认值的规则。 //1.整型数组的元素默认值都是0 int[] arr = new int[10]; System.out.println(arr[0]); System.out.println(arr[9]); //2.字符数组的元素默认值是0 char[] chars = new char[100]; System.out.println((int)chars[0]); System.out.println((int) chars[99]);//需要在char[]前面加上int实现强制类型转换,否则运行出来的是乱码 //3.浮点型数组的元素默认值是0.0 double[] scores = new double[90]; System.out.println(scores[0]); System.out.println(scores[89]); //4.布尔类型的数组元素默认值是false boolean[] booleans = new boolean[100]; System.out.println(booleans[0]); System.out.println(booleans[99]); //5.引用类型的数组元素默认值是null String[] names = new String[90]; System.out.println(names[0]); System.out.println(names[89]); } }
问:动态初始化数组后元素的默认值是什么样的?
- byte、short、int、char、long类型数组元素的默认值都是0
- float、double类型数组元素的默认值都是0.0
- boolean类型数组元素的默认值是false、String类型数组元素的默认值是null