java基础——数组

一、数组

数组是指一种容器,可以用来存储同种数据类型的多个值。

1.数组静态初始化

        初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。

       语法:

               ①完整格式:

                   数据类型[] 数组名  例子:int[] array

                   数据类型  数组名[]  例子:int  array[]

                    int[] array = new int[]{ 1 , 2 , 3 };

               ②简化格式:

                      数据类型 [] 数组名 = { 元素 1 ,元素 2 ,元素 3... };

                      int[] array = { 1 , 2 , 3 };

2.数组元素的访问

    格式:数组名[索引]

    索引:索引是数组容器中空间的编号,编号从 0 开始,逐个 +1 增长

注意:若果我们直接打印数组名会发现数据名存储的是一个16进制的地址名,这个地址名就是数组在内存中的位置,根据这个位置再加上索引就可以找到数组中的元素

例如:int array1={1,2,3} 

           System.out.println(array1);

3.数组遍历

   数组遍历:将数组中所有的内容取出来,取出来之后可以(打印,求和,判断 .. )     

   案例1:已知数组元素为{20,21,23,24,25,26}请将数组中偶数元素取出并求和,最后打印出求和结果

  案例2:已知数组元素为{20,21,32,24,54,26}求数组中的最大值

 4.数组动态初始化

        动态初始化:初始化时只指定数组长度,由系统为数组分配初始值

        格式:数据类型 [] 数组名 = new 数据类型[ 数组长度 ]

        范例:int[] arr = new int[3]

动态初始化与静态初始化的区别:

        动态初始化是手动指定数组长度,由系统给出默认初始化

        静态初始化是手动指定数组元素,系统会根据元素个数,计算出数组的长度

案例一:键盘录入5个整数并求最大值

 案例二:产生10个1-100之间的随机数,并找出最大值(求最大值看案例一的第二个图片)

 5.java内存分配介绍:

方法最开始是放在方法区,被调用后进入栈内存,在占内存创建数组的时候,就会在堆内存中开辟一块空间,用于存储数组的各个元素。

注意:简化格式只是简写了代码书写,真正运行期间还是按照完整格式运行

          int[] arr = new int[]{1,2,3}

 注意:  arr1存储的其实是数组在堆内存中的地址,再赋值给arr2时给个也是地址,两个数组指向的是一个内存空间

6.数组常见问题:

        ① ArrayIndexOutOfBoundsException 当访问了数组中不存在的索引,就会引发索引越界异常

        ② 当引用数据类型变量被赋值为 null 之后,地址的指向被切断,还继续访问堆内存数据,就会引发空指针异常

 二、二维数组

        二维数组是一种容器,该容器用于存储一维数组

        格式:数据类型 [][] 数组名 = new 数据类型 [][] {{ 元素 1, 元素 2},{ 元素 1, 元素 2}};

        范例: int[][] arr = new int[][]{{11,22},{33,44}};

        简化格式:数据类型 [][] 数组名 = {{ 元素 1, 元素 2}, { 元素 1, 元素 2}};

        范例: int[][] arr = {{11,22},{33,44}};

        访问格式:数组名 [ 索引 ][ 索引 ];

        访问范例: int[][] arr = new int[][]{{11,22},{33,44}};
                           arr[1][0];

遍历是双层的的for循环,开辟空间时第一层数组空间存贮的是第二层的数组空间的地址

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值