数组
数组
数组是相同类型数据的有序集合
数组描述的是相同类型的若干个数据,按照一定的先后次序排序组合而成
其中,每一个数据称作一个数组元素,每一个数组元素可以通过一个下标来访问它们
数组声明创建
int[] nums; // 声明一个数组,没有分配空间
nums = new int[10];//在内存里面分配空间
nums[0] =1 ;//赋值
//计算所有元素的和
int sum = 0;
for(int i = 0;i<sums.length;i++){
sum = sum + nums[i];
}
内存分析




java.lang.ArrayIndexOutOfBoundsException:10
数组下标越界异常。非法索引访问数组时抛出的异常。
三种初始化
- 静态初始化:创建加赋值
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;
- 数组的默认初始化:就是对应下标没有被赋值的,会被赋值默认值(0," ")。
数组是引用类型,他的元素相当于类的实例变量,因此数组一经分配空间,其中的每一个元素也会被按照实例变量同样的方式被隐式初始化。
null与空字符串的区别
" "有分配内存空间,而null 没有
数组的四个基本特点
- 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的
- 其元素必须是相同类型,不允许出现混合类型。
- 数组中的元素可以是任何数据类型,包括基本数据类型和引用类型。
- 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论如何保存原始数据类型还是其他对象类型,数组对象本身是在堆中的。
数组的使用
int[] arrays = {1,2,3,4,5}
//增强for
for(int array:arrays){
//该方法无法取出下标
}
//一个应用
//反转数组
int[] result = new int[arrays.length];
for(int i = 0,j = result-1;i<arrays.length;i++,j--){
result[j]= arrays[i];
}
return result;
//也有reserve 函数
int[] reserve = reverse(arrays);
- 普通的For循环
- For-Each循环
- 数组作方法入参
- 数组作返回值
多维数组

数组中是一个数组
int[][] array = {{1,2},{2,3},{3,4},{4,5}}//可以看成四行两列

System.out.println(array[0][0]);
System.out.println(array.length);
System.out.println(array[0].length);
遍历多维数组
for(int i = 0;i<array.length;i++){
for(int i = 0;j<array[i].length;i++){
System.out.println(array[i][j]);
}
}

浙公网安备 33010602011771号