java数组
数组概述
数组的定义
- 数组是相同数据类型的有序集合
- 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成
- 其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们
数组的声明创建
声明数组
dataType[ ] arrayRefVar ;首选
dataType arrayRefVar[ ];
创建数组
- 语法:dataType[ ] arrayRefVar = new dataType[arraySize ]
arrayRefVar = new dataType[数组长度];
-
public class Demo01 { public static void main(String[] args) { int[] nums;//声明一个数组 nums = new int[10];//创建数组,开辟一个空间,可以存放10个元素 nums[0] = 1;//给数组赋值 nums[1] = 2; nums[2] = 3; nums[3] = 4; nums[4] = 5; nums[5] = 6; nums[6] = 7; nums[7] = 8; nums[8] = 9; nums[9] = 10; //int[] nums={1, 2, 3, 4};声明一个数组并用已知的元素进行初始化 System.out.println(nums[2]); for (int i = 0; i < nums.length; i++) { System.out.println(nums[i]); } } }
内存分析
数组的三种初始化
-
静态初始化
int[ ] a = {1, 2, 3}
Man[ ] mans = {new Man(1, 1), new Man(2, 2)}
-
动态初始化
int[ ] a = new int[2];
a[0] = 1;
a[1] = 2;
-
数组的默认初始化
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化
public class Demo02 { //静态初始化:创建+赋值同时进行 int[] a = { 1, 2, 3, 4}; //动态初始化,首先开辟个空间,再进行赋值 int[] b; b = new int[10]; //动态赋值 b[0] = 1; b[1] = 2; //未被初始化的空间为数据类型的默认值:int-0 }
数组的基本特点
- 数组的长度是确定的,数组一旦被创建,它的大小就是不可以被改变的
- 数组元素必须是相同类型的
- 数组中的元素可以是任何类型,包括基本类型和引用类型
- 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,java中对象是在堆中的,因此数组无论保存原始类型还是其它对象类型,数组对象本身是在堆中的
- 下标的合法区间:0 - length-1,如果超过就会越界报错 ArrayIndexOutOfBoundsException
数组的使用
for-each循环
public class Demo03 {
public static void main(String[] args) {
//创建一个数组
int[] nums = {
1, 2, 3, 4, 5};
//遍历数组中所有的元素
for (int i = 0; i < nums.length; i++) {
System.out.println<