`
cakin24
  • 浏览: 1402836 次
  • 性别: 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语言求二维数组鞍点

    这个程序首先初始化`rowMin`和`colMax`,然后遍历数组,每次迭代时更新这两个值。如果发现某个元素既是当前行的最小值又是当前列的最大值,就找到了鞍点,并打印其位置和值。如果循环结束后没有找到鞍点,则输出相应...

    动态开辟二维数组.doc )

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

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

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

    第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...

    C语言二维数组PPT学习教案.pptx

    本篇将详细阐述二维数组的定义、内存存储、初始化及引用方式。 1. 二维数组的定义与内存存储 二维数组可以视为特殊的一维数组,其元素是另一个一维数组。例如,对于一个3x4的二维数组a,可以理解为一个包含3个元素...

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

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

    rising-edge-output.rar_labview数组_二维数组

    在LabVIEW编程环境中,二维数组是一种非常常见的数据结构,它用于存储和处理多列或多行的数据。本实验“rising-edge-output.rar”旨在教你如何利用LabVIEW实现基于二维数组的开关量上升沿脉冲输出。这在数字信号处理...

    javascript 二维数组的实现与应用

    Array的构造函数可以接收一个数值参数来初始化数组的长度,也可以接收一个包含数组元素的列表。 5. 操作二维数组元素: 通过索引的方式可以访问和修改二维数组中的元素。例如,在二维数组aCity中,aCity[1][2]表示...

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

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

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

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

    二维数组习题讲解ppt

    二维数组是编程中常见的一种数据结构,特别是在处理矩阵运算或二维数据存储时极其有用。本讲解主要关注两个问题:旋转矩阵和蛇形矩阵。 首先,我们来看旋转矩阵。旋转矩阵是指给定一个n*m的数字矩阵,将其按照指定...

    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) ``` 在处理数组时,还应注意以下几点: - **数组大小变化**:`_...

    删除数组中的元素vb6

    ' 初始化数组 ReDim arrNumbers(1 To 10) As Integer ' 填充数组 For i = 1 To 10 arrNumbers(i) = Rnd * 100 ' 生成0到99的随机数 Next i targetValue = 50 ' 要删除的元素值 ' 创建新数组并复制未被删除...

    MATLAB三维数组示例.md

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

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

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

    C++中静态初始化数组与动态初始化数组详解

    本文将对C++中的两种数组初始化方式——静态初始化与动态初始化进行详解,帮助读者更好地理解和应用这两种技术。 ### 静态初始化数组 静态初始化,顾名思义,就是在编译时期便已确定数组的大小和内容。在C++中,...

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

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

    多维数组下标计算 多维数组下标计算 多维数组下标计算

    地址计算公式可以用来计算二维数组、三维数组等多维数组的元素地址。地址计算公式可以分为行优先顺序和列优先顺序两种。 行优先顺序的地址计算公式: LOC(aij)=LOC(a11)+[(i-1)×n+j-1]×d 列优先顺序的地址计算...

    java代码-例子4-6 用字节数组初始化String对象

    总结来说,从字节数组初始化String对象是Java编程中常见的任务,尤其是当处理二进制数据时。正确理解和使用`String`构造函数以及指定字符集是确保数据正确解析的关键。这个例子4-6就是一个很好的实践,帮助开发者...

Global site tag (gtag.js) - Google Analytics