Java数组

Java数组

A. 一维数组

1.一维数组的定义和初始化

// int[] id;//数组声明
		// 1.静态初始化:数组的初始化和数组元素的赋值操作同时进行
		int[] id = new int[] { 1, 2, 3, 4 };
		// 2.动态初始化:数组的初始化和数组元素的赋值分开进行
		String[] name = new String[4];
		name[0] = "dwa";
		name[2] = "dwaw";
		name[1] = "dawdawf";
		name[3] = "sdwfwa";

2.获取数组长度

使用:length后标

		System.out.println(name.length);
		System.out.println(id.length);

运行结果

3.遍历数组

for (int i = 0; i < a.length; i++)
			System.out.println("321" + a[i] + "das");

4.数组元素的默认初始化值

			1.数组元素是整形:0 
			2.数组元素是浮点型:0.0
		 	3.数组元素是char型:0'\u000',而非'0'(ASCII码值为04.数组元素是boolean型,false
		 	5.数组元素是引用数据类型时,初始值为null(空值)

5.数组的内存解析

在这里插入图片描述

例如:int []a=new int[3];
a在main方法中,为局部变量,a先在栈区中开辟一块空间,new出的结构放在堆里面,是一个长度为3的连续存储的结构(int型默认值为0);堆区的元素有一个用十六进制的数来表示的首地址值,这个地址值附给栈空间中的a;栈区的a通过这个地址值可以找到堆区的数组从而联系起来。当main方法结束后;a从栈区中释放,堆区中的数组也随之从堆区中释放。
在这里插入图片描述

B.二维数组

1.二维数组的声明和初始化

二维数组外层的每个元素都相当``于一个一维数组

		int[][] arr1=new int[][] {{1,2,3},{4,5},{6,7,8}};
		//静态初始化
		String[][]arr2=new String[3][2];
		//动态初始化

在这里插入图片描述

2.二维数组的调用

(1).对内层元素的调用
		String[][]arr2=new String[3][2];
		 System.err.println(arr2[1][1]);
		 //输出:null
		 String[][]arr3=new String[3][];
		 System.err.println(arr3[1][1]);//错误:空指针异常
		 arr3[1]=new String[4];
		 System.err.println(arr3[1][1]);//输出null

*外层数组对于的元素相当于一个一维的数组,需要对外层元素再在堆区用new开辟一段内存空间

(2).对外层元素的调用

规定:二维数组分为外层数组的元素和内层数组的元素
外层元素:arr[0],arr[1]等
内层元素:arr[0][0],arr[1][2]等

外层元素相当于一个一维数组(是引用类型),若未给他开辟空间则输出null(引用数据类型初始值为null)例:

		int[][]arr3=new int[3][];
		 System.err.println(arr3[1]);
		 //输出null

若以给外层元素开辟出空间,则调用结果为一段地址值(开辟出的那块空间的首地址)例:

 		int[][]arr3=new int[3][];
		 arr3[1]=new int[4];
		 System.err.println(arr3[1]);
		//输出:[I@548b7f67

3.获取数组的长度

		int[][] arr1=new int[][] {{1,2,3},{4,5},{6,7,8}};
		 System.err.println(arr1.length);//3
		 //arr1在栈区中,指向外层元素,外层元素有几个arr1的长度就是几
		 System.err.println(arr1[0].length);//3
		 System.err.println(arr1[1].length);//2

4.如何遍历二维数组

			int[][] arr1=new int[][] {{1,2,3},{4,5},{6,7,8}};
			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();}
				/*输出:	123
						45
						678
                */
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值