数组
1、数组定义格式
1.1什么是数据
数组是一种用于存储多个相同类型数据的存储模型
1.2数组的定义格式
格式一:数据类型[] 变量名
例 : int[] arr
定义了一个int类型的的数组,数组名为arr
格式二:数据类型 变量名[]
例 : int arr[]
定义了一个int类型的变量,变量名是arr数组
2、数组初始化之动态初始化
2.1数组初始化概述
Java中的数组必须先初始化,然后才能使用 所谓初始化:就是数组中的数组元素分配内存空间,并为每个数组元素赋值。
2.2数组初始化方法
动态初始化
静态初始化
2.3动态初始化
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值
格式:数据类型[] 变量名=new 数据类型[数组长度]
例:int[] arr = new int[3]
3、数组元素访问
3.1数组元素访问
数组变量访问方式 格式:数组名
数组内部的访问方式 格式:数组名[索引]
索引
作用:索引用于访问数组中的数据使用,数组名[索引]等同于变量名,是一种特殊的变量名
1、索引从0开始
2、索引是连续的 所以逐一增加
3、每次加1
4、内存分配
4.1JAVA中内存分配
栈内存:存储局部变量 定义在放大中的变量,例如:arr使用完毕,立即消失
堆内存:存储new出来的内容(实体,对象)
数组在初始化时,会为存储空间添加默认值 每一个new出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被收回。
5、数组初始化之静态初始化
5.1数组初始化之静态初始化
静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度
- 格式:数据类型[ ] 变量名=new 数据类型[]{数据1,数据2,数据3,…};
- 例:int[ ] arr=new int[]{1,2,3};
- 简化格式:数据类型[ ] 变量名={数据1,数据2,数据3,…}
- 例:int[] arr={1,2,3};
6、数组操作的两个常见小问题
- 索引越界
int[ ] arr = new int[3];
System.out.print(arr[3]);
原因: 因为下标排序从0开始,所以当他为arr[3]时,就会搜索不到数组元素,从而产生错误.
- 空指针异常
int[ ] arr = new int[3];
System.out.println(arr[2]);
arr=null;
System.out.println(arr[0]);原因:
因为arr原来栈内存地址的值为001,相当于指针,可以指向堆内存的地址,但当把null赋值给arr时,就斩断了连接,指针指向空,就找不到地址值了
7、数组常见操作
7.1 遍历
int [ ] arr ={11,22,33,45};
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);简化方式:
for(int x=0; x<5; x++){
System.out.println(arr[x]);
}
7.2 获取数组元素数量
格式:数组名.length
例:arr.length
7.2 获取最值
思路:
1、定义一个变量,用于保存最大值
2、取数组中的第一个数据作为变量的初始值
3、与数组中剩余的数据逐个比较
4、循环结束后打印变量的值