数组
定义
-
数组是一种容器,能存储同类型的多个值。
Tip
-
存储数据时,需要考虑隐式转换的问题
-
例如:int(
booleanbyte short intdouble)其中double不能转换成boolean。 -
建议具体数值与数据类型保持一致。
-
静态初始化
- 初始化:在内存中为数组容器开辟空间,并将数据存入容器的过程。
- 完整格式:数据类型[] 数组名 = new 数据类型[ ]{ };
- 简化格式:数据类型[] 数组名 = { };//常用
地址值
-
数组在内存中的位置
-
查询地址值的格式 :System.out.println(数组名);
-
double[] arr = {11,12,13,14,15};
-
System.out.println(arr);
-
运行结果:[D@776ec8df
-
[ : 表示数组 D : 数据类型 @ : 间隔符 776ec8df : 真正的地址值,是十六进制。
-
元素访问
-
利用索引对数组中的元素进行访问
-
使用时,把数组中的元素赋给变量。
int[] arr = {1,2,3} int number = arr[i];
-
把数据存入数组中
-
格式:数组名[索引] = 具体数值/变量(会覆盖原来的数字,即原来的数字不存在。)
数组遍历
-
遍历是取出数据的过程
-
如何获取所有元素?答:利用循环。
- 开始条件:0
- 结束条件:数组长度-1(最大索引-1)
-
int[] arr = {2,15,25,45,22,45,11,78,94,66} for(int i = 0;i<arr.length;i++){ // i <= arr.length-1 System.out.println(arr[i]); }
-
拓展
- 由idea提供快捷方式 arr.fori
动态初始化
定义
- 手动指定长度,由系统分配初始值。
格式
- 数据类型[] 数组名 = new 数据类型[数组长度]
- 例如: int[] arr = new int[3];
默认初始值
- 整数类型:默认初始值0
- 小数类型:默认初始值0.0
- 布尔类型:默认初始值false
- 字符类型:默认初始值'/u0000' 即空格
- 引用数据类型:默认初始值null
提示
- 需要手动给元素添加数值
动态初始化与静态初始化的区别
- 静态初始化:手动制定数组元素,系统根据数组个数计算出数组长度。
- 那么在要明确操作的具体数据时,使用静态初始化。
- 动态初始化:手动指定数组的长度,由系统分配初始值。
- 那么只明确数组个数,而不知道具体数值时,使用动态初始化。
数组的内存图
黑马程序员 JAVA上 P62 数组的内存图
- 只要是new出来的一定是在堆里面开辟了一个小空间(这个小空间有地址值)
- 多次new,那么堆里面有多个小空间,每个小空间中都会有各自的数据。
总结
- 当两个数组指向同一个小空间时,其中一个数组对空间的值进行改变,那么其他数组再次访问时,数值是修改后的结果。