一、数组
1.定义
数组:用于存储多个相同类型数据的存储模型。
2.数组的定义格式
格式一:数据类型[] 变量名
范例:int [] arr //定义了一个int类型的数组,数组名是arr
格式二:数据类型 变量名[]
范例: int arr[] //定义了一个int类型变量,变量名是arr数组
注意:推荐使用格式一。
3.数组的初始化之动态初始化
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[] 变量名 = new 数据类型[数组长度];
范例: int [] arr = new int[3];
说明:左边:
int:说明数组中的元素类型是int类型。
[]:说明这是一个数组。
arr:说明数组的名称是arr。
右边:
new:为数组申请内存空间。
int:说明数组中的元素类型是int类型。
[]:说明这是一个数组。
3;数组长度即数组中的元素个数。
4.数组元素访问
数组变量访问方式:数组名。
数组内部保存的数据的访问方式:数组名[索引]。
索引是数组中数据的编号方式,用来访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名。索引的特征:从0开始,连续的,逐一增加。
5.内存分配
数组在初始化的时,回味存储空间添加默认值,整数为0,浮点数为0.0,布尔值为false,字符为空字符,引用数据类型为null。
栈内存:存储局部变量(定义在方法中的变量,使用完立即消失)。
堆内存:存储new出来的内容(实体,对象)。(每个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收)
6.数组的初始化之静态初始化
静态初始化:初始化的时候指定每个数组元素的初始值,有系统来决定数组的长度。
格式:数据类型[] 变量名 = new 数据类型[] {数据1,数据2,数据3,……};
范例:int [] arr = new int [] {1,2,3};
简化格式:数据类型[] 变量名 = {数据1,数据2,数据3,……};
范例:int [] arr = {1,2,3};
7.常见问题
1)索引越界:访问了数组中不存在的索引对应的元素。
2)空指针异常:访问的数组已经不再指向堆内存的数据。



