2022Java学习笔记十一(java数组的概念、数组的定义,动态静态数组,数组的默认值)
一、什么是数组
数组就是用来存储一批同种类型数据的内存区域(盒子)
二、定义数组
1、静态初始化数组
定义数组的时候直接给数组赋值
格式
数据类型[] 数组名 = new 数据类型[]{数据1,数据2,...};
// 简化格式
数据类型[] 数组名 = {数据1,数据2,...};
2、数组属于引用数据类型,存储的数组在内存中的地址信息
package com.zcl.Array;
public class Demo {
public static void main(String[] args) {
// 目标:静态初始化数组
int[] arr = {1,2,3,4,5}; // 简化
int[] arr2 = new int[]{1,2,3,4,5};
int age[] = {12,485,78};
System.out.println("获取数组的内存地址:"+arr); // [I@6d311334 I:是数据类型
}
}
3、数组的访问
数组有索引,根据【数组名称[索引]】就可以找到具体数组
数组有长度属性:length
package com.zcl.Array;
public class Demo {
public static void main(String[] args) {
// 目标:静态初始化数组
int[] arr = {1,2,3,4,5}; // 简化
int[] arr2 = new int[]{1,2,3,4,5};
System.out.println("获取数组的内存地址:"+arr); // [I@6d311334 I:是数据类型
System.out.println("---------数组的访问--------");
System.out.println(arr[0]); // 1
System.out.println(arr[1]); // 2
System.out.println(arr[2]); // 3
System.out.println("---------数组的赋值--------");
// 赋值:数组名称[索引] = 数据
arr[0]=100;
System.out.println(arr[0]); // 100
System.out.println("---------数组的长度--------");
System.out.println(arr.length); // 5
// 数组的最大索引:length-1【前提是长度大于0】
}
}
4、数组的注意事项
- 什么类型的数据只能存放什么类型的数据
- 数据一但定义之后,类型和长度就是固定的
- 如果超出数组长度就会报错【索引越界】
5、动态初始化数组
定义数组的时候只确定元素的类型和长度,之后写入具体数据。
格式:
数据类型[] 数组名 = new 数据类型[长度];
数组名[索引] = 写入值;
当前已经知道存入的元素值,用静态初始化
当前还不清楚要存入哪些数据,用动态初始化
package com.zcl.Array;
public class Demo2 {
public static void main(String[] args) {
int age[] = new int[10]; // 确定动态数组的长度
age[0] = 10;
age[1] = 20;
age[2] = 30;
System.out.println(age[0]); // 10
System.out.println(age[4]); // 默认值:0
// double 默认值为:0.0
// 字符串 默认值为:null
}
}
6、动态初始化数组的默认值
- 整形数组的元素默认值为:0
- 字符数组的元素默认值为:0(强转之后看到)
- 浮点型数组元素默认值为:0.0
- 布尔类型的数组默认值为:false
- 引用类型的数组默认值为:null
动态和静态的区别
动态初始化:只指定数组的长度,后期赋值
静态初始化:开始就存入元素值
两种写法是独立的,不可混淆使用