Java基础干货之第四篇——(数组及数组的索引的常见问题)

day07

一、数组的概念及两种格式

​ 数组是一个容器,可以同时存储多个值。

  • 格式一:

数据类型 [] 数组名

​ 举例:

​ int [] arr;

  • 格式二:
数据类型 数组名 []

​ 举例:

​ int arr [];


二、数组的动态初始化

格式:

​ 数据类型 [] 数组名 = new 数据类型 [长度];

例子:

//创建一个长度为3的数组,数组类型为int
int [] arr = new int [3];
//int : 就表示数组以后只能存int类型的整数
//[] : 定义的是一个数组
//arr: 数组的名字
//new:关键字。在内存中开辟了一个小空间。
//int:就表示数组以后只能存int类型的整数
//[3]: 表示现在的这个数组长度为3.

注意点:

1,等号前面和后面的数据类型要完全保持一致。

2,new关键字,表示在堆内存中开辟了一个新的小空间。

3,方括号中的数字3,表示数组的长度。

数组一旦创建好了,长度是不能发生变化的。


三、数组的静态初始化

完整格式:

​ 数据类型 [] 数组名 = new 数据类型 []{ 数据1,数据2,数据3,。。。。}

简写格式:

​ 数据类型 [] 数组名 = { 数据1,数据2,数据3,。。。。}

举例:

//要把1 2 3 4 5 存到一个数组当中
//静态初始化
int [] arr1 = new int[]{1,2,3,4,5};

//简化写法:
//new int[] 可以省略的
int [] arr2 = {1,2,3,4,5};

四、索引概念及其使用

  • 概念:

    索引就是数组中每一个小格子的编号。

    特点:

    ​ 索引是从0开始的。

    ​ 索引是连续的。

    ​ 索引是逐一增加的,每次加1。

    索引的范围:

    ​ 最小索引:0

    ​ 最大索引:数组长度 - 1


  • 使用:

    ​ 利用索引获取数组中的元素。

    ​ int number = arr[索引];

    ​ 利用索引给数组中的元素赋值。

    ​ arr[索引] = 10;


五、数组内存图:

一)、一个数组内存图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QkF2c1Cx-1594476476646)(D:\Ajava53\Ajava53基础班课堂讲解资料图\day07\一个数组的内存图.png)]


二)、两个数组内存图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6eJVXtuA-1594476476649)(D:\Ajava53\Ajava53基础班课堂讲解资料图\day07\两个数组的内存图解.png)]


注意:

只要看到new,就是在堆里面开辟了一个新的小空间。


三)、两个数组指向同一个小空间内存图

例子:
		int [] arr1 = new int [3];
        int [] arr2 = arr1;//把变量arr1记录的地址值赋值给了变量arr2
                        //是不是又开了一个空间?
                        //不是的。因为这里只有一个new

        arr2[0] = 10;
        arr2[1] = 20;
        arr2[2] = 30;

        System.out.println(arr1[0]);//10
        System.out.println(arr1[1]);//20
        System.out.println(arr1[2]);//30
        System.out.println("=================");
        System.out.println(arr2[0]);//10
        System.out.println(arr2[1]);//20
        System.out.println(arr2[2]);//30

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-84VCKVF7-1594476476651)(D:\Ajava53\Ajava53基础班课堂讲解资料图\day07\两个数组指向同一个小空间的图解.png)]


注意:

arr[索引] = 值;

值到底赋值给谁?就看arr这个变量记录的是谁的地址值。

六、数组常见两个问题

一)、数组索引越界异常

出现的原因:

​ 访问了不存在的索引。

2)、空指针异常

出现的原因:

​ arr现在没有指向任何的空间。

​ null:表示不指向任何的小空间。

赠人玫瑰手有余香,小手一赞,身缠万贯!


版权声明:本文为weixin_48966833原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。