1. 数组的概述
数组是指一种容器,可以用来存储同种类型的多个值,数组容器再存储数据的时候,需要结合隐式转换考虑。
定义:
1 | //格式1: |
初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。
静态初始化: 数据类型[ ] 数组名 = new 数据类型[ ]{元素1,元素2,元素3…};
简写样式: 数据类型[ ] 数组名 = {元素1,元素2,元素3…};
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型[ ] 数组名 = new 数据类型[数组长度];
在创建的时候,由我们自己指定数组的长度,有虚拟机给出默认的初始化值。
数组默认初始化值的规律:
整数类型的默认初始值为0
小数类型的默认初始值为0.0
字符类型的默认初始值为’/u0000’空格
布尔类型的默认初始值为false
引用数据类型的默认初始值为null
动态初始化和静态初始化的区别
| 动态初始化 | 静态初始化 |
| :————————————————————————: | :—————————————————————————: |
| 只明确元素个数,不明确具体数值,推荐使用动态初始化 | 需求中已经明确了要操作的具体数据,直接静态初始化即可 |
2.数组的地址值和元素访问
地址值:表示数组在内存中的位置([I@4eec7777)
[ :表示当前是一个数组
I :表示当前数组里面的元素都是int类型
@:表示一个间隔符号。固定格式
4eec7777:数组真正的地址值(16进制)
1 | [I@4eec7777 |
数组元素访问:
格式: 数组名[索引],数组的索引从0开始。
1 | int a = arr[0]; |
3.数组的遍历
数组遍历:将数组中所有的内容取出来,取出来之后可以进行打印,判断,求和…………
遍历是指取出数据的整个过程,不要局限的理解为,遍历就是打印。
获取数组的长度:数组名.length
拓展:Idea中自动地快速生成数组的遍历方式:数组名.fori回车
4.数值中常见问题
1.索引越界问题(最小索引:0,最大索引:数组长度-1)
1 | Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 50 out of bounds for length 50 |
5.数组的内存图
JAVA内存空间 |
---|
栈:方法运行时使用的内存,比如main方法运行,进行方法栈中执行。 |
堆:存储对象或者数组,new来创建的,都存储在堆内存 |
方法区:存储可以运行的class文件 |
本地方法栈:JVM在使用操作系统功能时使用,与开发无关 |
寄存器:给CPU使用,和开发无关 |