一、数组:
1.数组的概念
a.存储具有固定长度数据的容器,保证多个数据类型必须一致.
固定长度:数组一旦创建,则长度就不可改变
数据类型:必须保证是相同类型
b.简单理解: 批量定义变量
变量: 声明 + 初始化
int a = 10
2.数组的定义
1)数组的声明
int[] a;
char[] c;
byte[] b;
2)数组的初始化
(1)静态初始化
a.方式一
语法结构
数据类型[] 数组名 = {元素1,元素2,元素3,...};
特点: 固定写法,只能在声明的同时初始化
b.方式二
语法结构
数据类型[] 数组名 = new int[]{元素1,元素2,元素3,...};
特点: 可以再次赋值
静态赋值共同特点:
在数组创建时就已经确定了数组的长度 和 数组的元素
(2)动态初始化
语法结构:
数据类型[] 数组名 = new int[数组长度];
特点:
数组再定义时只初始化了数组的长度,但没有初始化数组元素
数组元素有默认值,都是0,但是0的表现形式不一样
整数类型 -> 0
浮点类型 -> 0.0
字符类型 -> '\u0000' Unicode字符集
布尔类型 -> false
引用数据类型 String[]
3.访问数组元素
语法格式: 数组名[下标]
下标范围: 0 ~ length - 1
4.数组的属性(length)
数组的长度 = 数组的元素个数
5.数组的遍历/迭代
挨个获取数组中的元素称之为数组的遍历/迭代
6.常见异常
ArrayIndexOutOfBoundsException:数组下标越界
NullPointerException:空指针异常
7.数组扩容/缩容
数组的复制:
Arrays.copyOf();
System.arrayCopy();
8.数组的反转
概念: 数组中的元素颠倒顺序.
原理: 参照原理图
9.数组内存管理
1)内存
内存是计算机中重要组成部分,是一个临时存储区域,当程序启动着,会开辟一块内存空间,用于存储程序中的数据.
2)JVM虚拟机内存分区
方法区:加载类相关的信息
栈:局部变量 / 临时变量
堆:数组,对象
寄存器:给CPU使用,和开发无关