1. 数组
容器:存储东西(数据)的
数组概念:数组就是用于存储数据的长度固定的容器,保证多个数据的数据类型要一致
① 创建数组的时候,必须指定长度
② 数组在创建的时候,需要指定数据类型
③ 数组是有顺序的(位置的顺序)
数组的特点:
数组的长度一旦确定,就不允许修改
2. 数组的使用
2.1 数组的定义
① 动态初始化 ★
语法:
a. 数组的声明
数据类型[] 数组名; //推荐
数据类型 数组名[];
b. 数组空间的开辟
数组名=new 数据类型[数组长度];
二合一:数据类型[] 数组名=new 数据类型[数组长度];
动态初始化举例:
//动态初始化数组
int[] arrs;//声明数组,名称自定义(此处定为arrs)
arrs=new int[5];//为arrs开辟五个连续的空间,用来存储数据
arrs[0]=10;//将10存储在arrs的第一个位置上
arrs[4]=50;//将50存储在arrs的第五个位置上
System.out.println(arrs);//注意这里输出的不是内容,而是地址:[I@15db9742
System.out.println("数组中的第一个值:"+arrs[0]);//带角标的才是显示的内容
System.out.println("数组中的第五个值:"+arrs[4]);
System.out.println("数组中的第一个值:"+arrs[2]);//未赋值,显示默认值0
② 静态初始化(在创建数组的同时,将数据指定完成)
a.
数据类型[] 数组名;
数组名=new 数据类型[]{数据1,数据2,数据3...};
合二为一:
数据类型[] 数组名=new 数据类型[]{数据1,数据2,数据3...};
注意事项:
数据的个数就是数组的长度,并且不允许显示的指定长度
b.
数据类型[] 数组名={数据1,数据2,数据3...};
注意事项:
不允许拆开
//静态初始化数组
int[] arrs1;
arrs1=new int[]{3,5,8};
//长度是3,就意味着角标的范围是0-2
System.out.println(arrs1[0]);//输出为3
System.out.println(arrs1[1]);//输出为5
System.out.println(arrs1[2]);//输出为8
//修改
arrs1[0]=20;
System.out.println(arrs1[0]);//输出为20
③ 动态和静态的使用场合
在创建数组的时候,不知道数据是什么,就是用动态初始化!
在创建数组的时候,已知数据是什么,就可以采用静态初始化!
2.2 数组的操作
① 存值
数组名[角标]=值;
注意:
a. 值要匹配数组的数据类型
b. 角标不能超过数组的角标范围
② 取值
数组名[角标]
2.3 数组的特性
a. 数组是存在默认值的
整型数组:0
浮点型数组:0.0
String数组:null
boolean数组:false
char数组:空白符
2.4 异常总结
数组角标越界:(使用了数组范围之外的角标,就会出现此异常)
ArrayIndexOutOfBoundsException
出现异常,程序会终止,仔细的查看异常信息,异常类型、异常位置
案例:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Demo1.main(Demo1.java:12)
异常类型:ArrayIndexOutOfBoundsException
异常位置:Demo1.java:12
3.数组的内存
程序运行需要内存(计算机的运行内存)
JVM在运行JAVA程序时,会去电脑的运行内存分配空间,运行空间大致分为:虚拟机栈;堆 内存;方法区;其运行时使用内存空间大致如下