`
cakin24
  • 浏览: 1368154 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

两张内存变化图揭秘二维数组的初始化

    博客分类:
  • java
阅读更多

一 代码示例

public class TwoDimensionTest
{
	public static void main(String[] args)
	{
		// 定义一个二维数组
		int[][] a;
		// 把a当成一维数组进行初始化,初始化a是一个长度为4的数组
		// a数组的数组元素又是引用类型
		a = new int[4][];  //a
		// 把a数组当成一维数组,遍历a数组的每个数组元素
		for (int i = 0 , len = a.length; i < len ; i++ )
		{
			System.out.println(a[i]);
		}
		// 初始化a数组的第一个元素
		a[0] = new int[2];
		// 访问a数组的第一个元素所指数组的第二个元素
		a[0][1] = 6;            //b
		// a数组的第一个元素是一个一维数组,遍历这个一维数组
		for (int i = 0 , len = a[0].length ; i < len ; i ++ )
		{
			System.out.println(a[0][i]);
		}
	}
}

二 运行结果

null
null
null
null
0
6
三 结果分析



 

 
图一是a段代码执行完后的内存情况。
图二是b段代码执行完后的内存情况。
另外从图一和图二,我们可以得出这样一个结论:二维数组是一维数组,其数组元素是一维数组。三维数组也是一维数组,其数组元素是二维数组,从这个角度来看,Java语言没多维数组。

  • 大小: 17 KB
  • 大小: 22.2 KB
分享到:
评论

相关推荐

    动态二维数组 c#编程

    在C#编程中,动态二维数组是一种非常重要的数据结构,特别是在处理不定数量的数据或需要灵活扩展数据表的情况下。本文将深入探讨动态二维数组的概念、创建方法、操作技巧以及其在实际编程中的应用。 动态二维数组,...

    C语言动态分配二维数组

    首先为行指针数组分配内存,然后为整个二维数组分配内存,并初始化所有元素为0,最后设置每一行的起始地址。 通过以上内容,我们可以看到在C语言中动态分配二维数组的方法和步骤。正确使用这些技术可以帮助我们在...

    MFC中用格网显示二维数组

    初始化二维数组 ```cpp int array[5][5] = { 7,2,2,2,2, 2,1,1,1,2, 2,1,0,1,2, 2,1,1,1,2, 2,2,2,2,5 }; ``` 这段代码定义了一个5x5的整型数组,并初始化了具体的数值。这些数值将在后续的网格中以视觉化的...

    动态开辟二维数组.doc )

    ### 动态开辟二维数组:深入理解与实践 在编程领域,特别是在C++中,动态开辟二维数组是一项基本而重要的技能。本文将基于提供的文件信息,深入探讨如何使用C++中的`new`关键字以及`vector`容器来实现这一功能。 #...

    微信小程序——二维数组添加机柜页面.zip

    此外,考虑到状态管理,可以使用微信小程序的Page对象提供的data属性来存储二维数组,每次数组变化时,通过this.setData方法更新数据,这会触发页面的自动重绘。同时,为了防止数据错乱,应确保在并发操作(如多个...

    基于Excel的二维数组k-means聚类

    本篇主要介绍如何借助Excel的VBA(Visual Basic for Applications)语法来实现二维数组的k-means聚类算法,并利用Excel的图表功能展示聚类结果。 首先,我们需要理解k-means算法的基本原理。k-means算法的目标是将...

    可变长二维数组,行数与每行列数由用户输入

    通过上述步骤,我们可以实现一个灵活的可变长二维数组,能够根据用户的输入动态调整其大小,并对每一个元素进行初始化。这种数组的应用场景非常广泛,例如在处理动态变化的数据集时尤为有用。理解这些基本概念和技术...

    Vector创建二维数组.zip

    6. **内存效率**:由于`vector`内部的元素是连续存储的,所以使用单个`vector`来表示二维数组可以避免传统二维数组可能存在的内存碎片问题,提高了内存效率。 7. **内存访问**:尽管需要手动计算索引,但是由于`...

    c++动态数组申请(包括一维,二维的)

    2. 初始化动态数组:除了单纯分配空间,我们还可以在创建时初始化数组的所有元素。例如,创建一个大小为n且所有元素都为0的数组: ```cpp int *arr = new int[n](); ``` 这里的`()`表示使用默认构造函数初始化数组...

    labview删除一维数组中的所有0元素

    在LabVIEW中,数据通常以数据结构的形式存在,如一维数组、二维数组或簇。 标题"labview删除一维数组中的所有0元素"暗示我们要对一维数组进行操作,移除其中的所有0值。这可以通过循环、条件判断和数组操作来实现。...

    C语言中二维数组的输出样式辨析.pdf

    在内存的存储上,尽管二维数组在形式上是二维的,但在实际存储时,它是按行优先的顺序线性存储在内存中的。具体来说,就是先存储数组的第一行,然后是第二行,依此类推。以数组a[3][4]为例,其存储顺序为:a[0][0], ...

    Matlab三维数组举例分析,优缺点总结.pdf

    例如,一个三维数组可以用来存储一组二维图像,每张图像都作为一个二维切片存在于三维数组中。通过对这个三维数组的操作,如像素级别的调整、滤波或分割,可以实现对图像的处理和分析。这种处理方式使得在Matlab中...

    指向计算思维培养的模型化思维教学模式实践——以选考数据与数据结构“二维数组”为例.pdf

    教师可以将数字化图像放大,创设出图像像素和二维数组元素之间的关系模型,使学生能直观感知到平面图像的翻转变化实际上就是像素位置的移动。 在实践模型化思维教学模式时,教师需注重学生活动和教师活动的结合。...

    MATLAB三维数组.md

    #### 二、创建与初始化三维数组 ##### 1. 创建全零三维数组 在MATLAB中,可以使用`zeros`函数轻松创建一个全零的三维数组。该函数的基本语法如下: ```matlab array3D = zeros(dim1, dim2, dim3); ``` 其中`dim1`,...

    Autoit从数组中删除指定的元素.rar

    初始化二维数组 Local $a2DArray[2][3] = [1, 2, 3, 4, 5, 6, 7, 8, 9] ; 假设我们要删除第一行的第二个元素 _ArrayDelete($a2DArray[1], 2) ``` 在处理数组时,还应注意以下几点: - **数组大小变化**:`_...

    一维数组定义C源文件1

    ### 一维数组的定义与初始化 #### 数组的声明 数组的声明格式通常为: ```c type arrayName[arraySize]; ``` 其中 `type` 表示数组中元素的数据类型,`arrayName` 是数组的名字,而 `arraySize` 是数组的大小,即...

    第2讲 指针高级之指针访问三维数组

    int A[3][4][5] = { /* 初始化数组 */ }; // 使用指针访问数组元素 for(int i = 0; i ; i++) { for(int j = 0; j ; j++) { for(int k = 0; k ; k++) { printf("%d ", A[i][j][k]); // 通过指针访问 printf...

    MATLAB三维数组示例.md

    对于三维数组,`disp`函数会按顺序展示每一个二维平面。 **示例:** ```matlab % 打印数组 disp(array); ``` #### 五、学习收获 通过本篇文档的学习,您将掌握以下知识和技能: 1. **理解MATLAB中三维数组的概念...

    一些Python中的二维数组的操作方法

    然而,使用上述方法创建二维数组时,如果直接修改数组中的某个元素,可能会导致整个数组的某些行产生相同的变化。这是因为这种创建方式并没有真正创建多个独立的子列表,而是创建了多个引用到同一个列表的引用。当对...

    JavaScript二维数组实现的省市联动菜单

    在给定的代码中,`cities` 是这样一个二维数组,它包含了多个省份(数组的第一维)及其对应的城市(数组的第二维)。例如: ```javascript var cities = [ ["安庆", "合肥", "桐城"], ["石家庄", "保定", "唐山"]...

Global site tag (gtag.js) - Google Analytics