java数组简介,数组的默认值,二维数组创建,内存分析



一、数组的定义

当声明数组时,仅仅是给出了数组变量的名字和元素的数据类型,要想真正地使用数组还必须为它分配变量,即给数组分配元素。

例如:

// 声明数组与创建数组分开写
// 声明数组
float[] arr;
// 创建数组
arr = new float[4];

也可以声明数组与创建数组一起完成

1.数据类型[] 数组名 = new 数据类型[数组长度]
2.数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…}
3.数据类型[] 数据名 = {元素1,元素2,…}

int[] arr1 = new int[5];
int[] arr2 = new int[]{1, 2, 3};
int[] arr3 = {6, 7, 8, 9};

使用方法一创建数组时必须给定数组的长度,且创建数组后长度不可变。
可以通过length获取数组的长度

System.out.println(arr1.length);	// 5
System.out.println(arr2.length);	// 3
System.out.println(arr3.length);	// 4

二、数组的存储与取用

在java中,不能通过直接打印数组来获取元素(以int为例)(char数组例外),例如:

    public static void main(String[] args) {
        int[] arr = new int[5];
        System.out.println(arr);	// [I@1b6d3586
    }

通过数组的下标实现存储数据与取用(以int型为例)

 public static void main(String[] args) {
        int[] arr = new int[5];
        arr[0] = 6;
        arr[1] = 9;
        
        // 数组长度
        System.out.println(arr.length);
        
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);		// 6 9 0 0 0 
        }
    }

例子中数组arr前两个元素为6、9,后三个元素为0。
是因为创建数组时指定了数组的长度却没有给定初始值,所以系统会自动的给定初始值。并且对于不同类型的数组,给定的初始值也不同。

三、数组的默认值

1.基本数据类型的数组

byte 型数组元素的默认初始值为0

short 型数组元素的默认初始值为0

int 型数组元素的默认初始值为0

long 型数组元素的默认初始值为0L

float 型数组元素的默认初始值为0.0f

double 型数组元素的默认初始值为0.0d

char 型数组元素的默认初始值为字符\u0000(Unicode编码中\u0000代表的是空字符,属于控制字符,也叫不可显字符。这个空字符与空格不同,空格的编号是 \u0020)

boolean 型数组元素的默认初始值为false

2.引用类型的数组在创建之后,默认值null

public static void main(String[] args) {
		byte[] b = new byte[1];
		System.out.println(b[0]);	//0
		
		int[] i = new int[1];
		System.out.println(i[0]);	//0
		
		short[] s = new short[1];
		System.out.println(s[0]);	//0
		
		long[] l = new long[1];
		System.out.println(l[0]);	//0
				
		float[] f = new float[1];
		System.out.println(f[0]);	//0.0
		
		double[] d = new double[1];
		System.out.println(d[0]);	//0.0
		
		char[] c = new char[1];
		System.out.println(c[0]);	// 
		
		boolean[] bo = new boolean[1];
		System.out.println(bo[0]);	//false
		
		String[] st = new String[1];
		System.out.println(st[0]);	//null
		
	}

四、数组的常见异常

1、ArrayIndexOutOfBoundsException 索引越界异常
访问不存在的索引值。
在arr数组中,数组的长度为5,索引值分别为0,1,2,3,4
没有索引值为5的元素,访问arr[5]就会报错
2、NullPointerException 空指针异常
数组arr没有任何指向,所以报错

 public static void main(String[] args) {
        int[] arr = new int[5];
        arr[0] = 6;
        arr[1] = 9;

        System.out.println(arr[1]);
        System.out.println(arr[5]);	//ArrayIndexOutOfBoundsException 下标越界异常

        arr = null;
        System.out.println(arr[1]);	//NullPointerException 空指针异常

五、二维数组

1、二维数组创建

1.数据类型[][] 数组名 = new 数据类型[二维数组中一维数组的个数][一维数组中元素的个数];
2.数据类型[][] 数组名 = new 数据类型[二维数组中一维数组的个数][];
3.数据类型[][] 数组名 = {{元素1,元素2,…},{元素1,元素2,…},…}

int[][] arr1 = new int[5][5];
int[][] arr2 = new int[5][];
int[][] arr3 = new int{{1,2},{3,4},{5,6}}

2、二维数组的取用

 public static void main(String[] args) {
 
	int[][] arr = {{1,2,3}, {4,5}, {5,6,7,8}};
    System.out.println(arr);	// [[I@1b6d3586
    System.out.println(arr[0]);		// [I@4554617c
    System.out.println(arr[0][1]);		// 2

// 遍历
	for(int i = 0; i < arr.length; i++) {
		for(int j = 0; j < arr[i].length; j++) {
			System.out.print(arr[i][j] + " ");
		}
		// 换行
		System.out.println();
	}
}

六、数组的内存分析

java数组的内存分析:java数组的内存分析

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李子木、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值