区分三种初始化方式:

格式一:

    数据类型[][] 数组名 = 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,可以动态的为其分配内存空间。

java中二维数组内存分配的更多相关文章

  1. Java中二维数组与面向对象

    1:二维数组(理解) (1)元素是一维数组的数组. (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][] 数组名 = new 数据类型[m][]; C: ...

  2. java中二维数组的排序

    首先定义一个5X8的二维数组,然后使用随机数填充满.借助Arrays的方法对二维数组进行排序.参考思路:先把二维数组使用System.arraycopy进行数组复制到一个一维数组然后使用sort进行排 ...

  3. java 中二维数组的定义和遍历

    定义格式 * a 第一种定义格式: * int[][] arr = new int[3][4];// arr里面包含3个数组 每个数组里面有四个元素 * 上面的代码相当于定义了一个3*4的二维数组,即 ...

  4. java中二维数组遍历

    public class Demoshuzu2 { public static void main(String[] args) {        int[][] arr2 = {{78,79,65, ...

  5. java中二维数组求最大值代码。。。。。。不懂呀

    总结:二维数组理解不了,,,,求解析... package com.c2; public class Aaa { // 求数组元素中最大的 public static void main(String ...

  6. Java中二维数组

    二维数组:(其实是一个一维数组,它的每一个元素又是一个一维数组), 可以看做是一张表格. 初始化: 动态初始化 int[ ][ ]  arr = new int[3][2]; 定义了一个二维数组,其中 ...

  7. java中二维数组初始化的几种方法

    /* 第一种方式 */ int tdarr1[][] = { { 1, 3, 5 }, { 5, 9, 10 } }; /* 第二种方式 */ int tdarr2[][] = new int[][] ...

  8. java中二维数组的复制克隆

    https://blog.csdn.net/qq_37232304/article/details/79950022

  9. java 多维数组遍历

    java 多维数组遍历的顺序的性能问题 ps:下图为java多维数组内存分布原理.出自:http://math.hws.edu/javanotes/c7/two-dimensional-array.p ...

随机推荐

  1. OpenCV(一):集成

    开这个系列文章,记录自己在项目中使用OpenCV所走的步骤流程,方便以后再次使用.如果有不正确的地方,欢迎指正. OpenCV在其官网上,已经发布有iOS版的库,但是只有核心模块的功能,扩展模块(比如 ...

  2. 导航菜单点击图片切换--jquery

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. Binary Search 二分法方法总结

    Binary Search 二分法方法总结 code教你做人:二分法核心思想是把一个大的问题拆成若干个小问题,最重要的是去掉一半或者选择一半. 二分法模板: public int BinarySear ...

  4. L1-063 吃鱼还是吃肉

      国家给出了 8 岁男宝宝的标准身高为 130 厘米.标准体重为 27 公斤:8 岁女宝宝的标准身高为 129 厘米.标准体重为 25 公斤. 现在你要根据小宝宝的身高体重,给出补充营养的建议. 输 ...

  5. Eclipse个人快捷键设置及常用快捷键

    Eclipse中字母自动提示的快捷键设置,具体如下图所示,加上大写字母A-Z 二.常用快捷键设置 (1)在java代码中按 ctrl+O 快速查看类的属性和方法列表如下所示 (2)在java代码中选中 ...

  6. firefox 屏蔽Backspace按键的后退功能

    直接上图

  7. hdu4003详解(树形dp+多组背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4003 Find Metal Mineral Time Limit: 2000/1000 MS (Jav ...

  8. cdh集群认证命令

    1.集群认证命令 kinit -kt csliyb.keytab csliyb 2.查看认证有效期命令 klist命令 3.延长认证有效期命令 kinit -R 4.手动认证失效命令 kdestroy

  9. reinterpret_cast

    reinterpret_cast强制类型转换符 用法: new_type a = reinterpret_cast <new_type> (value) 将value的值转成new_typ ...

  10. npm run dev 报错 run `npm audit fix` to fix them, or `npm audit` for details

    前几天写的直接运行npm run dev还是ok的,突然不行了,前面报错是css-loader没有,删除style标签上的lang='scss'就好了,先不需要这个依赖.这个先不管. 只是后面的 ru ...