数组(Array),是多个相同类型数据按一定顺序排列的集合,使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
数组的常用概念
- 数组名
- 下标(或索引)
- 元素
- 数组长度
数组的特点:数组是有序排列的
数组是属于引用数据类型的变量,但是数组中的元素既可以是引用数据类型也可以是基本数据类型。
创建数组对象会在内存中开辟一整块连续的空间,而数组名中引用的是这块连续空间的首地址。
(不连续的空间 比如链表)
数组的长度一旦确实,就不能修改(因为开辟的空间已经设定好,并且是有限的),如果需要更大的空间需要新建数组。
我们可以直接通过下标(或索引)的范式调用指定位置的元素,速度很快。
数组的分类
- 按照维度: 一维数组、二维数组、三维数组.....
- 按照元素的数据类型分: 基本数据类型元素的数组、引用数据类型元素的数组(对象数组)
一维数组
public class MyProgram {
/*
* 1 以为数组的声明和初始化
* 2 如何调用数组的指定位置的元素
* 3 如何获取数组的长度
* 4 如何遍历数组
* 5 数组元素的默认初始化值
* 6 数组的内存解析
*/
public static void main(String[] args) {
// 1 一维数组的声明和初始化
int num ; //声明
num = 10 ; //初始化
int id = 1001 ; //声明+ 初始化
int[] ids ; //声明
//1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行
ids = new int[]{1001,1002,1003};
//1.2 动态初始化:数组的初始化和数组元素的赋值操作分开进行
String[] names = new String[5];
//总结: 数组一旦初始化完成,其长度就确定了。
//2 如何获取数组的长度
//属性:length
System.out.println(names.length);
}
}
数组元素的默认初始化值(跟属性的默认初始化值一致)
- 数组元素是整形:0
- 数组浮点型:0.0
- 数组元素是char型:0或'\u0000'
- 数组元素是boolean型:false
- 数组原始引用数据类型:null
内存的简化结构
首地址值(第一个元素的地址值 是16进制的)