1. 数组定义格式
数组(array)是一种用于存储多个相同类型数据的存储模型,是一次性声明大量的用于存储数据的变量,且要存储的数据通常都是同类型数据,例如:考试成绩。
数组有两种定义格式:
① 格式一:int[ ] arr
定义了一个 int 类型的数组,数组名是 arr。
② 格式二:int arr[ ]
定义了一个 int 类型的变量 ,变量名是 arr 数组。
两种格式在使用的时候没有区别,推荐使用格式一定义数组!
2. 数组动态初始化
Java 中的数组必须先初始化,然后才能使用。所谓初始化,就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。
数组动态初始化是指,初始化时只指定数组长度,由系统为数组分配初始值。
格式:int[ ] arr = new int[3]
数组长度其实就是数组中的元素个数!
3. 数据元素访问
对于数组地址直接使用数组名来访问,而要访问数组中的数据,应该使用数组名[索引]。
索引是数组中数据的编号方式。索引用于访问数组中的数据,数组名[索引]等同于变量名,是一种特殊的变量名。
索引特征:
① 索引从0开始;
② 索引是连续的;
③ 索引逐一增加,每次加1。
4. 内存分配
Java 程序在运行时,需要在内存中分配空间,为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
数组在初始化时,会为存储空间添加默认值:
① 整数,默认值为0;
② 浮点数,默认值为0.0;
③ 布尔值,默认值为 false;
④ 字符,默认值是空字符;
⑤ 引用数据类型,默认值是 null。
栈内存: 存储局部变量,定义在方法中的变量,使用完毕,立即消失;
堆内存: 存储 new 出来的内容(实体、对象),每一个 new 出来的东西都有一个地址值,使用完毕,会在垃圾回收器空闲时被回收。
package com.zxe;
public class HelloWorld {
public static void main(String[] args) {
int[] arr = new int[3];
arr[0] = 100;
arr[1] = 200;
arr[2] = 300;
System.out.println(arr);
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
}
}
5. 数组静态初始化
静态初始化是指,初始化时指定每个数组元素的初始值,由系统决定数组长度。
格式:int[ ] arr = new int[ ] {1, 2, 3}
简化格式:int[ ] arr = {1, 2, 3}
6. 数组常见操作
6.1 遍历
获取数组中元素的个数:arr.length。
int[] arr = {11, 22, 33, 44, 55};
for(int x = 0; x < arr.length; x++) {
System.out.println(arr[x]);
}
6.2 获取最值
思路:
① 定义一个变量,用于保存最大值(或最小值);
② 取数组中第一个数据作为变量的初始值;
③ 拿初始值与数组中剩余的数据逐个比较,每次比对将最大值保存到变量中;
④ 循环结束后,打印变量的值。
int[] arr = {12, 45, 98, 73, 60};
int max = arr[0];
for(int i = 1; i < arr.length; i++) {
if(arr[i] > max) {
max = arr[i];
}
}
System.out.println("最大值为:" + max);