学Java的第十五天-数组<2>--多维数组

🎉🎉🎉多维数组
在这里插入图片描述
🎉🎉二维数组使用
🎉二维数组声明与初始化、调用元素、获取数组

package com.xxq.ArrayTest1;
public class ArrayTest2 {
 public static void main(String[] args) 
 {
  //二维数组声明和初始化
  //静态初始化
  int[][] arr1 = new int[][]{{1,2,3},{4,5}};
  //动态初始化1
  int[][] arr2 = new int[3][2];
  //动态初始化2
  int[][] arr3 = new int[3][];
  //如何调用数组指定位置的元素?
  System.out.println("调用数组arr1[0][2]处的3测试");
  System.out.println(arr1[0][2]);
  //获取数组长度
  System.out.println("arr1的长度");
  System.out.println(arr1.length);
  System.out.println("arr1【0】的长度");
  System.out.println(arr1[0].length);
  //遍历二维数组
  System.out.println("arr1的遍历");
  for(int i=0;i<arr1.length;i++)
  {
   for(int j =0;j<arr1[i].length;j++)
   {
    System.out.print(arr1[i][j]+"  ");
   }
   System.out.println();
  }
 }
}

结果演示
在这里插入图片描述
🎉二维数组元素的默认初始化值及数组的内存解析
规定:二维数组分为外层数组元素和内层数组元素;
外层元素arr[0]、arr[1]等;
内层元素arr[0] [0]、arr[0][1]等;

package com.xxq.ErWeiShuZu;
public class ErWeiShuZu 
{
 public static void main(String[] args)
 {
  //数组元素默认初始化值
  int[][] arr = new int[4][3];
  System.out.println(arr[0]);
  System.out.println(arr[0][0]);
  System.out.println(arr);
 }
}

结果:外层arr[0]显示的是一个地址;内层元素arr[0][0]显示的是0

在这里插入图片描述

内层元素为0不用多说了,那外层的元素初始化为什么会显示一个地址呢?
以上面arr[ ] [ ] 为例,内存中有堆和栈,变量名放在堆中,数据值放在栈中;在堆中存储的是arr这个变量在内存中的地址,而堆中存放的是数组arr[ ][ ] 的元素们,int[][] arr = new int[4][3];为二维数组开辟了内存空间(如果int[4][],这样写则没有指针指向arr的内层元素),arr[0] 中还没有进一步放元素,系统也不会给整条arr[0]={0.0.0}只能返回arr【0】的地址,结果【表示一维,I表示int 、@以后的是地址值;当然下面的arr 存放的是arr的地址,【【表示二维数组。然后arr[0][0]就不用多说啦,初始值取决于二维数组存放变量类型。

在这里插入图片描述
当然,数组们调用完之后会被自动回收的哦!这也体现了Java的垃圾自动回收机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值