JAVA数组的声明、创建、初始化、内存分析

本文详细介绍了Java中一维数组和二维数组的声明、创建过程,包括静态和动态初始化,以及内存分析。特别强调了二维数组的创建时系统如何默认分配内存,并指出了不完全初始化可能导致的空指针异常问题。

目录

一维数组:

        1、一维数组的声明:

        2、一维数组的创建(给数组分配空间):

        3、数组初始化:

        4、一维数组创建的内存分析:

二维数组:

         二维数组声明:

        二维数组的创建:

        二维数组的初始化:

        创建二维数组的内存分析:


 

这里声明一下部分图片来自百战尚学堂

一维数组:

        1、一维数组的声明:

        创建一维数组有两种声明的写法:

        注意:声明不能定义数组的大小

                1、int[] arr; 

                2、int arr[];

        2、一维数组的创建(给数组分配空间):

        只有在创建的时候才可以定义数组的大小

                int[] arr = new int[];

        3、数组初始化:

                3.1、静态初始化(数组在声明时使用大括号初始化):

                        int[] arr = {0,1,2,3,4};

                3.2、动态初始化(数组声明创建过后,通过下标初始化):

                        int[] arr = new int[3];

                        arr[0] = 0;arr[1] = 0;arr[2] = 0;

                3.3、默认初始化(数组声明创建过后,系统默认初始化为0或空)

                        int[] arr = new int[3];

        4、一维数组创建的内存分析:

                int[] arr = new int[3];

                数组实际上也是对象,当我们new的时候其实跟对象创建四部原则差不多:

                        1、创建对象,属性默认初始化为0或空

                        2、属性进行显性初始化

                        3、调用构造器

                        4、返回对象的地址给变量

eed2b32635e841d6906d630520de5c5a.png

二维数组:

         二维数组声明:

                int[][] arr;

        二维数组的创建:

                int[][] arr = new int[3][]//创建数组时前面这个括号必须定义大小

        二维数组的初始化:

                静态初始化:int[][] arr = {{1,2,3},{4,5,6}};

                动态初始化参考一维数组

                默认初始化:int[][] arr = new int[3][]//创建数组时前面这个括号必须定义大小

        创建二维数组的内存分析:

                数组也是对象,创建数组与创建对象四步法一致:

ef6553e5d43743b4a6da1545fb573da0.png

 

                ​​​

                int[][] arr = new int[3][2]; 

34a763c1e6c44729b29d04d8be7bf5cb.png

注意:

二维数组在创建过后new int[3][],像这样只有前面的括号有数字,后面的括号是空的,那么系统就不会自动创建一维数组给二维数组的元素引用,此时如果你访问某个值那就会报空指针异常

3574f7349ff3410f8eb844f6ecd9078f.png

 

如果我们在后面的括号定义了数字,二维数组创建时就会默认创建三个一维数组给二维数组的元素引用,并且每个一维数组的元素默认为2个(这里的一维数组的元素默认是你自己定的)

affdf777ad244aefa9d0bde38e76a4ff.png

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值