数组及其内存分析,多维数组的本质
程序员文章站
2024-03-04 15:23:11
...
24.数组
- 数组是相同数据类型的有序集合
- 数组的每个元素可以通过他们的下标来访问它们
package com.demo.array;
import java.lang.reflect.Array;
public class Demo1 {
public static void main(String[] args) {
/*
* 定义一个数组,
* 数据类型[] 数组名 = {元素0,元素1,元素2,...};
* 数据类型[] 数组名 = new 数据类型[array.length]; 可以通过arry.length这个参数来获取数组的长度
* 数组的长度是固定的,一但创建就不可以再改变
* */
int[] nums; // 推荐使用,声明了一个数组
// int nums$[]; //为了给C,C++开发者过渡
nums = new int[10]; // 创建一个数组,这里可以存放10个int类型的数字
nums[0] = 0;
nums[1] = 1;
nums[2] = 2;
nums[3] = 3;
nums[4] = 4;
nums[5] = 5;
nums[6] = 6;
nums[7] = 7;
nums[8] = 8;
nums[9] = 9;
for (int i = 0; i < nums.length; i++) {
System.out.println(nums[i]);
}
}
}
内存分析
数组下标越界
package com.demo.array;
public class Demo2 {
public static void main(String[] args) {
int[] nums = new int[10]; // 这里创建了一个长度为10的数组,即在堆中开辟了一个可以装10个int类型数据的空间
System.out.println(nums[11]);// 访问数组中下标为11的元素,此时会报数组越界异常
}
}
- ArrayIndexOutOfBoundsException
- 两种遍历循环
package com.demo.array;
public class Demo3 {
public static void main(String[] args) {
int[] arrays = {1, 2, 3, 4, 5, 6};
System.out.print("原数组:");
printArray(arrays); // 打印数组
int[] newArrays = reverse(arrays);
System.out.print("\n反转后数组:");
printArray(newArrays); // 打印反转后的数组
}
// 反转数组
public static int[] reverse(int[] arrays) {
int[] result = new int[arrays.length];
for (int i = 0; i < arrays.length; i++) {
result[arrays.length-1 - i] = arrays[i];
}
return result;
}
// 打印数组元素
public static void printArray(int[] arrays) {
for (int array : arrays
) {
System.out.print(array + " ");
}
}
}
多维数组
- 多维数组的本质就是数组嵌套
- 数组中再放数组
package com.demo.array;
public class Demo4 {
public static void main(String[] args) {
int[][] arrays = new int[3][10]; // 相当于在内存中创建了一个可以放3个元素数组,只不过这3个元素是int[]类型
int[][] nums = {{1,2,3},{4,5,6},{7,8,9}};
/*
* 相当于一个数组,它的长度是3
* 第0个元素nums[0] 中存放了一个 int[]数组 --> {1,2,3}
* 第1个元素nums[1] 中存放了一个 int[]数组 --> {4,5,6}
* 第2个元素nums[2] 中存放了一个 int[]数组 --> {7,8,9}
* */
}
}
上一篇: Java中Kafka的基本使用
下一篇: Java IO之缓冲流概述-3