p52 数组的声明与创建
1、数组:是相同类型数据的有序集合,其中每个数据称作一个数组元素
- 数组的元素通过索引/下标访问,索引区间是 [0, length-1]
- 获取数组长度的方法是:arrayName.length
- 下标越界会有以下报错:ArrayIndexOutOfBoundsException! 数组下标越界异常!
- 定义数组以 [ ] 表示,数组元素以 { } 圈定,以 ,号间隔,拾取数组元素的格式:arrayName[index]
2、使用数组必须先声明数组变量(分配栈空间)
dataType[ ] arrayName; //首选
dataType arrayRefVar[ ];
3、使用 new 操作符来创建数组(分配堆空间)
dataType[ ] arrayName = new dataType[arraySize];
4、数组的基本特点:
1)数组元素必须是相同类型,不允许出现混合类型
2)其长度是确定的,数组一旦被创建,它的大小是不可以改变的
3)数组中的元素可以是任何数据类型,包括基本类型和引用类型
p53 内存分析
1、java内存:堆、栈、方法区
- 堆:存放 new 的对象和数组,可以被所有线程共享,不会存放别的对象引用
- 栈:存放基本变量类型(会包含这个基本类型的具体数值),引用对象的变量(存放此引用/对象在堆里面的地址)
- 方法区:可以被所有线程共享,包含了多有的class和static的变量
- 数组的本质也是对象,数组元素相当于对象的成员变量,因此数组无论保存原始类型还是对象类型,数组对象本身是在堆中的
- 数组变量是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素即被默认初始化
2、三种初始化
//静态初始化:创建 + 赋值
int[ ] a = {1,2,3,5,6,7,8};
//动态初始化:包含默认初始化
int[ ] b = new int[10];
b[0] = 1;
b[1] = 2;
//即使再小的帆也能远航2021-10-27