数组
数组就是一个容器,可以一次性存放多个数据,前提是数据类型必须要统一
数组是一个引用数据类型
定义数组:
数组类型[ ] 数组名;或数组类型 数组名[ ];
数组定义好以后,必须得进行初始化
数组初始化有两种方式:
1.动态初始化:指定数组长度,长度指的是数组中能存多少数据,数组的长度定义好以后不能改变
两种格式:
①数组类型[ ] 数组名=new 数据类型[数组长度];
②数组类型[ ] 数组名;
数组名=new 数据类型[数组长度];
2.静态初始化:不是指定数组长度,而是直接在创建数组的同时给数组添加数据
两种格式:
①数组类型[ ] 数组名=new 数组类型[ ]{数据1,数据2,… };
②数组类型[ ] 数组名;
数组名=new 数组类型 [ ]{数据1,数据2,…};
(1)通过 数组名[数组下标] 访问数组里面的元素,数组的下标从0开始
(2)获取数组长度:数组名.length
(3)常见错误ArrayIndexOutOfBoundsException 数组越界异常(访问到了数组中不存在的索引)
NullPointerException 空指针异常(没有赋值成功)
(4)获取数组中的每一个值
for循环
foreach(for循环的增强版)
格式:for(变量类型 接收数组元素值的变量名:数组名)
(5)数组类型的分类
1)基本数据类型
默认值
byte 0
short 0
int 0
long 0
char 空格
float 0.0
double 0.0
boolean false
2)引用数据类型
String … 还可以是自己封装的类
默认值都是null
Java程序在运行时,对内存中的分配空间划分了不同区域
栈:存放局部变量
堆:存new出来的东西
方法区:存class文件
本地方法区:操作系统
寄存器:给cpu使用
栈内存的特点:用完就释放掉
堆内存的特点:
1.每一个new出来的东西都会有一个地址
2.每个变量都会有默认值
3.使用完毕就变成了垃圾,但是并没有立即回收,会等到垃圾回收器空闲时回收