一维数组
基本概念
记录多个类型相同的数据内容时,使用一维数组,其本质是内存空间中连续的存储单元
声明方式
数据类型[] 数组名称 = new 数据类型[数组长度]; (动态声明)
数据类型[] 数组名称 = new 数据类型[] {初始值1, 初始值2, ……} (静态声明)
数据类型[] 数组名称 = {初始值1, 初始值2, ……} (简略的静态声明)
初始值
一维数组初始化后(数据元素是基本类型),元素具有初始值
byte、short、int、long 初始值为0
float、double初始值为 0.0
boolean 初始值为 false
属性
length 调用数组的length可以获取数组的长度
通过访问下标读取数组内容;下标从0开始,下标范围是 0 ~ n-1
一维数组内存结构
- 声明一个数组 int[] arr = new int[2];
- 执行int[] arr时,在栈区中为名字arr的变量开辟一块空间,执行new int[2] 时,在堆空间中开辟一个连续的内存空间,大小为2个块,此时用这段内存空间的起始地址标明这段空间
- 最后 = 将这个堆空间的起始地址塞到为arr开辟的栈空间中,就可以让arr指向数组空间了。
特点
- 直接通过索引访问元素,读取速度快
- 所有元素类型相同
- 要求内存空间连续,长度确定后不能修改
- 增删会移动大量元素,效率低
Java提供的方法(java.util.Arrays)
二维数组
基本概念
二维数组就是由多个一维数组摞在一起组成的数组,二维数组中的每个元素都是一维数组,而一维数组中的每个元素才是数据内容,本质上在内存中还是一段连续的存储单元
声明方式
数据类型[][] 数组名称 = new 数据类型[行数][列数]
数据类型[][] 数组名称 = {{元素1, 元素2, ……}, ……};