数组及其内存分析,多维数组的本质

24.数组

  • 数组是相同数据类型的有序集合
  • 数组的每个元素可以通过他们的下标来访问它们
package com.demo.array;

import java.lang.reflect.Array;

public class Demo1 {
    public static void main(String[] args) {
        /*
         * 定义一个数组,
         * 数据类型[] 数组名 = {元素0,元素1,元素2,...};
         * 数据类型[] 数组名 = new 数据类型[array.length]; 可以通过arry.length这个参数来获取数组的长度
         * 数组的长度是固定的,一但创建就不可以再改变
         * */
        int[] nums; // 推荐使用,声明了一个数组
//        int nums$[];  //为了给C,C++开发者过渡
        nums = new int[10];  // 创建一个数组,这里可以存放10个int类型的数字
        nums[0] = 0;
        nums[1] = 1;
        nums[2] = 2;
        nums[3] = 3;
        nums[4] = 4;
        nums[5] = 5;
        nums[6] = 6;
        nums[7] = 7;
        nums[8] = 8;
        nums[9] = 9;

        for (int i = 0; i < nums.length; i++) {
            System.out.println(nums[i]);
        }

    }
}

内存分析

aF3pQA.png

数组下标越界

package com.demo.array;

public class Demo2 {
    public static void main(String[] args) {
        int[] nums = new int[10]; // 这里创建了一个长度为10的数组,即在堆中开辟了一个可以装10个int类型数据的空间
        System.out.println(nums[11]);// 访问数组中下标为11的元素,此时会报数组越界异常
    }
}
  • ArrayIndexOutOfBoundsException

aF8rBq.png

  • 两种遍历循环
package com.demo.array;

public class Demo3 {
    public static void main(String[] args) {
        int[] arrays = {1, 2, 3, 4, 5, 6};
        System.out.print("原数组:");
        printArray(arrays);  // 打印数组
        int[] newArrays = reverse(arrays);
        System.out.print("\n反转后数组:");
        printArray(newArrays);  // 打印反转后的数组
    }

    //    反转数组
    public static int[] reverse(int[] arrays) {
        int[] result = new int[arrays.length];
        for (int i = 0; i < arrays.length; i++) {
            result[arrays.length-1 - i] = arrays[i];
        }
        return result;
    }

    //    打印数组元素
    public static void printArray(int[] arrays) {
        for (int array : arrays
        ) {
            System.out.print(array + " ");
        }
    }
}

aFYobn.png

多维数组

  • 多维数组的本质就是数组嵌套
  • 数组中再放数组
package com.demo.array;
public class Demo4 {
    public static void main(String[] args) {
        int[][] arrays = new int[3][10];  // 相当于在内存中创建了一个可以放3个元素数组,只不过这3个元素是int[]类型
        int[][] nums = {{1,2,3},{4,5,6},{7,8,9}};  
        /*
        * 相当于一个数组,它的长度是3
        * 第0个元素nums[0] 中存放了一个 int[]数组 --> {1,2,3}
        * 第1个元素nums[1] 中存放了一个 int[]数组 --> {4,5,6}
        * 第2个元素nums[2] 中存放了一个 int[]数组 --> {7,8,9}
        * */
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Pointer-faker

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

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

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

打赏作者

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

抵扣说明:

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

余额充值