`
cakin24
  • 浏览: 1383748 次
  • 性别: 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语言动态分配二维数组

    首先为行指针数组分配内存,然后为整个二维数组分配内存,并初始化所有元素为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方法更新数据,这会触发页面的自动重绘。同时,为了防止数据错乱,应确保在并发操作(如多个...

    一维数组滤波_一维数组滤波_

    "一维数组滤波"指的是对一维序列数据进行处理,以消除噪声、平滑数据或提取特定频率成分。在这个场景中,描述提到的是使用平均值滤波方法来实现这一目的。 一维数组滤波的核心是数组,它是数据结构的一种,用于存储...

    Vector创建二维数组.zip

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

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

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

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

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

    Java二维数组简单定义与使用方法示例

    * 二维数组的长度是可以动态变化的,可以根据需要扩展或缩减。 * 每个一维数组的长度可以不同,可以根据需要定义不同的长度。 * 在访问二维数组时,需要使用两个中括号`[]`来访问每一层维度的引用。 Java二维数组是...

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

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

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

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

    MATLAB三维数组.md

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

    一维数组定义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中的二维数组的操作方法

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

    编译原理里,求FIRST集;用C++编写;用到了二维数组。

    1. 初始化`二维数组`:首先,将所有非终结符的`FIRST集`初始化为空,除了文法规则的起始符号,其`FIRST集`包含空字符 ε(表示可以从该符号开始推导出空串)。 2. 遍历文法规则:对于文法的每一个产生式 A → α,...

    js一维数组、多维数组和对象的混合使用方法.docx

    JavaScript中的数组和对象是两种非常基础且常用的数据结构。它们在编程中扮演着重要的角色,尤其是在处理和组织数据时。本文将深入探讨一维数组、多维数组以及对象的混合使用方法。 首先,一维数组是最基本的数组...

    二维数组的分位数归一化:返回归一化数据集-matlab开发

    一般而言,测量会受到许多因素的影响,例如采集仪器的校准、日常变化和其他因素,例如不同的源材料等。 基于所有数据都是在相同条件下测量/分析的假设,分位数归一化将有助于纠正这种可变性。 它将返回一个标准化的...

    贪吃蛇_C语言动态建立二位数组_likebis_贪吃蛇_easyx贪吃蛇_

    静态二维数组在声明时就需要指定行数和列数,而动态创建的二维数组则可以在程序运行时根据需求分配内存。这通常通过`new`操作符实现。例如,你可以先分配一维数组存储行指针,然后为每一行分配单独的一维数组。这样...

Global site tag (gtag.js) - Google Analytics