数组:是一种用于存储多个相同类型数据的存储类型
格式:
1、数据类型[] 变量名 (如int[] arr);-- 定义了一个int类型的数组,数组名是arr # 推荐使用该格式
2、数据类型 变量名[] (int arr[]); -- 定义了一个int类型的变量,变量名是arr数组
数组初始化:Java数组必须先初始化,才能使用。即:为数组中的元素分配内存空间,并为每个数组元素赋值
& 动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
格式:数据类型[] 变量名 = new 数据类型[数组长度];(如:int[] arr = new int[6];)
& 静态初始化:初始化时指定数组每个元素的初始值,由系统指定数组长度(定义时[]中不能指明数组长度)
格式:数据类型[] 变量名 = new 数据类型[] {数据1,数据2,数据3,......}; (如:int[] arr = new int[1,2,3];)
简化格式(推荐方式):数据类型[] 变量名 = {数据1,数据2,数据3,......};(如:int[] arr = {1,2,3};)
数组元素访问:数组名[索引],如int[0]、int[1]
内存分配:Java程序在运行时,需要在内存中分配空间。为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
单个数组内存分配:通过new关键字开辟内存空间
多个数组内存分配:
多个数组指向相同内存图:当其中一个数组的元素值发生改变后,其他数组的也是发生同样改变。因为它们指向相同内存数组地址
数组常见操作:遍历、获取最大值
遍历:可通过for循环进行遍历数组取值
for (int i=0; i<arr.length; i++){System.out.println(arr[i])};
获取最大值:
或
注:
索引越界:访问了数组中不存在的索引对应的元素,造成索引越界问题;(ArrayIndexOutOfBoundsExcetion)
空指针异常:访问的数组为null,已不再指向堆内存的数据,造成空指针异常; (NullPointerException)