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,可以动态的为其分配内存空间。

  • 相关阅读:
    设计模式学习笔记之一:策略模式
    向上转型和向下转型
    html readonly和disabled的区别
    如何自定义JSR-303标准的validator
    vue 组件属性props,特性驼峰命名,连接线使用
    laydate中设置动态改变max与min值的方法
    浅谈JS中 reduce() 的用法
    jq 实时监听input输入框的变化
    npm install --save 和 npm install -d的区别
    vue中html、js、vue文件之间的简单引用与关系
  • 原文地址:https://www.cnblogs.com/zhaoyuan72/p/10751303.html
Copyright © 2011-2022 走看看