Java千百问_06数据结构(018)_多维数组如何储存在内存中
来源:互联网 发布:淘宝贷款在哪里 编辑:程序博客网 时间:2024/06/04 17:40
点击进入_更多_Java千百问
1、多维数组如何储存在内存中
了解一维数组如何储存看这里:java数组如何存储在内存中
从底层来看,数组元素可以存放引用类型,数组也是引用类型的一种。也就是说,在数组元素的内部还可以包含数组(如int[][] numbers = new int[length][]),即二维数组可当作一维数组(数组长度为length)来处理。
了解数组和普通引用对象在内存中的区别看这里:数组和普通对象的引用变量有什么区别
由此我们得出结论: 任何多维数组(维度为n,n>1)都可以当作一维数组,其数组元素为n-1维数组。多维数组在内存中的储存同引用类型数组在内存中的储存。
了解引用类型数组在内存中的储存看这里:引用类型数组在内存中如何储存
以二维数组为例:
public class TestMultiArray { public static void main(String[] args) { // 1.定义二维数组 int[][] numbers; // 2.分配内存空间 numbers = new int[2][]; // 可以把numbers看作一维数组来处理 for (int i = 0; i < numbers.length; i++) { System.out.print(numbers[i] + ",");// null,null,null } System.out.println(""); // 3.为数组元素指定值 numbers[0] = new int[2]; numbers[0][1] = 1; numbers[1] = new int[2]; numbers[1][0] = 11; numbers[1][1] = 15; for (int i = 0; i < numbers.length; i++) { for (int j = 0; j < numbers[i].length; j++) { System.out.print(numbers[i][j] + ","); } System.out.println(""); } }}
结果如下:
null,null,
0,1,
11,15,
以一个图展示这个数组在内存中的存储:
1 0
- Java千百问_06数据结构(018)_多维数组如何储存在内存中
- Java千百问_06数据结构(016)_引用类型数组在内存中如何储存
- Java千百问_06数据结构(023)_基本数据类型在内存中如何存放
- Java千百问_06数据结构(014)_java数组如何存储在内存中
- Java千百问_06数据结构(022)_String在内存中如何存放
- Java千百问_06数据结构(012)_如何遍历数组
- Java千百问_06数据结构(013)_数组如何传递
- Java千百问_06数据结构(017)_什么是二维数组
- Java千百问_06数据结构(024)_用二进制如何表示整型数值
- Java千百问_06数据结构(025)_用二进制如何表示浮点型数值
- Java千百问_06数据结构(005)_数值中为什么会出现下划线
- Java千百问_06数据结构(015)_数组和普通对象的引用变量有什么区别
- Java千百问_06数据结构(003)_什么是基本类型包装器
- Java千百问_06数据结构(011)_java中的数组是什么
- Java千百问_06数据结构(009)_void是什么
- Java千百问_06数据结构(010)_Class类型是什么
- Java千百问_06数据结构(020)_String是什么
- Java千百问_06数据结构(006)_java基本数据类型如何转换
- Ubuntu日记——codeblock安装及其配置
- 浅谈Map集合
- Mine Sweeping Game
- 【VS开发】【电子电路技术】VPX技术介绍
- 设计一个算法的方法论
- Java千百问_06数据结构(018)_多维数组如何储存在内存中
- 基于SIFT特征的全景图像拼接
- Oracle/Hive/Impala SQL比较(3-4)
- Java使用JNDI技术获取DataSource对象
- asyUI tree点击文字展开节点
- 最长递增子序列算法
- tarjan算法 求解强联通分量 POJ_2186_Popular Cows
- 网页爬虫爬取数据出现 LockTimeoutException lock expired问题的可能解决方式
- Oracle/Hive/Impala SQL比较(5)