数组
大约 2 分钟
静态初始化数组
int[] scoreList = {95,85,79,99,100};
// 完整格式
int[] scoreList = new int[]{95,85,79,99,100};
String[] nameList = {'小红','张三','李四', '王五','六麻子'};
// 完整格式
String[] scoreList = new String[]{'小红','张三','李四', '王五','六麻子'};
数组在计算机中存储的基本原理
数组变量名中存储的是数组在内存中的地址,数组是一种引用数据类型
int[] ages = [12,24,18]
┌─────────────────► [I@4c873330
│ ┌────┬────┬────┐
ages ───┘ │ 12 │ 24 │ 18 │
┌─────────────┐ └────┴────┴────┘
│ [I@4c873330 │ 0 1 2
└─────────────┘ 内存
数组访问
获取数组对应索引的值
int[] arr1 = {12,24,18};
arr1[0];
// 12
获取数组长度
arr1.length;
// 3
动态初始化数组
定义数组时先不存入具体的元素值,只确定数组存储的数据类型和数组的长度
int[] arr = new int[3];
arr[0] = 10
// 10,0,0
注意
静态初始化和动态初始化数组的写法是独立的,不可以混用
❌ int[] arr = new int[3]{10,11,12};
数组默认值
| 数据类型 | 明细 | 默认值 |
|---|---|---|
| 基本类型 | byte、short、char、int、long | 0 |
| float、double | 0.0 | |
| boolean | false | |
| 引用类型 | 类、接口、数组、String | null |
数组在计算机中执行原理
Java 内存分配介绍
- 方法区
字节码文件先加载到这里 - 堆
new 出来的对象会在这块内存中开辟空间并产生地址 - 栈
方法运行时所进入的内存变量在栈内存里 - 本地方法栈
- 寄存器
数组反转
public class TestReverse {
public static void main(String []args) {
int[] arr = {245,123,32,566,22,1,88,55,90};
for(int i = 0, j = arr.length - 1; i < j ; i++, j--){
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
