数组
数组定义
数组类型【】 数组名 = new 数据类型【元素个数】
要点说明
- 数据类型: 数组中存储元素的数据类型
- [] 表示数组的意思
- 变量名 自定义标识符
- new 创建容器关键字
- 元素个数,就是数组中,可以存储多少个数据 (恒定, 定长)
- 数组是一个容器: 存储到数组中的每个元素,都有自己的自动编号(索引(index), 下标, 角标)
- 访问数组存储的元素,必须依赖于索引, 数组名[索引]
- 数组中最小的索引是0,最大的索引是“数组的长度-1”。
- 数组有一个属性,length。通过数组名.length访问数组长度。
数组两个定义方式
int[] arr = new int[]{1,2,46,6} 此处new后面的中括号不可以写任何内容
直接大括号赋值:
int[] arrr = {3,5,7,31,673,}
JVM内存划分
JVM对自己的内存进行划分,分为5个区域:
1.寄存器:内存和cpu之间
2.本地方法栈:JVM调用了系统中的功能
3.方法和数据共享:运行时期class文件进入的地方
4.方法栈:所有的方法运行的时候进入的内存
5.堆:存储的是容器和对象
数组的内存图
1.ArrayDemo.class先进入方法、数据共享区。 2.main方法进入方法栈,压栈运行。 3.JVM在堆内存,开空间,存储数组容器。
arr是引用类型,保存的数据实际上是数组的首地址。
数组遍历
for用于确定的个数
while用于不确定的个数
数组常见的异常
数组的索引越界异常
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
第三个元素异常
空指针异常
Exception in thread "main" java.lang.NullPointerException
二维数组
定义方式:
第一种 int[][] arr = new int[3][4]
第二种 int[][] arr = new int[3][]
其中一维数组长度没有指定,要new arr[0] = new int[5]; new arr[1] = new int[4]
第三种 Int[][] arr = {{4,6,23,7},{8,67,90,44},{12,6,89,65,6}} 最为简洁
案例1
销售求和问题
案例2
随机点名器
1.存储姓名
2.预览所有人姓名
3.随机出一个人姓名