思维导图
1、定义
数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致
2、定义格式
(1)数据类型[] 数组名 例 : int [ ] arr 定义了一个int类型的数组,数组名是arr
(2)数据类型 数组名[ ] 例: int arr[ ] 定义了一个int类型的变量,变量名是arr数组
3、数组静态 初始化 3.1.含义: 在创建数组时,直接将元素确定
3.2.格式:数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, …, 元素n};
例:int [] a =new int [] {1,2,...};
注意事项: 1)在第二个方括号中,不能写数组元素个数 2)元素值的罗列,元素和元素之间,使用逗号分隔 3)罗列出来的元素值,数据类型必须和声明数组时数据类型一致
3.3.简化格式: 数据类型[] 数组名 = {元素1, 元素2, …, 元素n}; 例:int a = {1,2,...};
4、数组动态 初始化
定义:只给定数组的长度,由系统给出默认初始化值
格式:数据类型[] 数组名 = new 数据类型[数组长度]; 例:int [ ] arr = new int [3];
-
等号左边:
-
int:数组的数据类型
-
[]:代表这是一个数组
-
arr:代表数组的名称
-
-
等号右边:
-
new:为数组开辟内存空间
-
int:数组的数据类型
-
[]:代表这是一个数组
-
3:代表数组的长度
-
5、数组元素访问
5.1、索引:每一个存储到数组的元素,都会自动的拥有一个编号,从0开始。
这个自动编号称为数组索引(index),可以通过数组的索引访问到数组中的元素。
5.2、格式:数组名 [索引] ; 例:① print(a[1]); 输出数组a中第2个元素。②print(arr);输出数 组名(输出内存地址)
6、内存分配
6.1、定义:内存是计算机中的临时存储区域,作用是运行程序。程序是存放在硬盘中的,在硬 盘中的程序是不会运行的。必须放进内存中才能运行,运行完毕后会清空内存。 Java虚拟机 要运行程序,必须要对内存进行空间的分配和管理。
6.2、java中的内存分配(栈内存(局部变量)和堆内存(new对象))
栈内存:存储局部变量 定义在方法中的变量,例如:arr 使用完毕,立即消失 堆内存:存储new出来的内容(实体,对象) 数组在初始化时,会为存储空间添加默认值 整数:0 浮点数:0.0 布尔:false 字符:空字符 引用数据类型:null 每一个new出来的东西都有一个地址值 使用完毕,会在垃圾回收器空闲时被回收
单个数组内存图
多个数组内存图
7、数组操作常见问题
(1)索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题
(2)空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常
(3)null:空值,引用数据类型的默认值,表示不指向任何有效对象
8、数组常见操作
(1)遍历
(2)获取数组元素数量---->格式:数组名.length 例:arr.length
(3)获取最值



