zoukankan      html  css  js  c++  java
  • java中二维数组内存分配

    区分三种初始化方式:

    格式一:

        数据类型[][] 数组名 = new 数据类型[m][n];

              m:表示这个二维数组有多少个一维数组。
              n:表示每一个一维数组的元素有多少个。

        //例:int arr[][]=new int[3][2];

        如下图

     

     

    格式二:

        数据类型[][] 数组名 = new 数据类型[m][];
          m:表示这个二维数组有多少个一维数组。
          列数没有给出,可以动态的给。这一次是一个变化的列数。

    如下图

    格式三:
        基本格式:
          数据类型[][] 数组名 = new 数据类型[][]{{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}};
        简化版格式:
          数据类型[][] 数组名 = {{元素1,元素2...},{元素1,元素2...},{元素1,元素2...}};

    如下图:

    内存分配详解:

    引用类型的默认值为null,定义二维数组时,会在堆内存为其分配内存空间(必须知道二维数组的行数,即一维数组的个数,才能够为其分配内存空间),首先给一个地址值0x001给arr,然后为二维数组里的一维数组分配内存空间,分别给一个地址值给一维数组,即0x0001给arr[0],0x0002给arr[1],0x0003给arr[2]。如果arr[3][]第二个元素值没有给出(相当于里面的一维数组的元素个数不知道),即以格式2定义二维数组,那么就无法为一维数组静态的分配内存空间了,即打印出来的arr[0],arr[1],arr[2]地址值是默认值null,可以动态的为其分配内存空间。

  • 相关阅读:
    Jenkins历史构建作业jobs的删除与管理
    Redis消息队列与主流的消息队列中间件对比
    GDAL数据模型
    Android的语言切换
    GDAL驱动实现向导
    Win7 安装IIS
    局域网中其他机器不能访问本机IIS网站
    DXF库(dxflib)使用指南
    GDAL中文学习资料
    QT的中文站址
  • 原文地址:https://www.cnblogs.com/zhaoyuan72/p/10751303.html
Copyright © 2011-2022 走看看