1.Java数组的定义与使用

Java数组

一、数组的概述

/**
1、数组概述
    A、数组:存储同一种数据类型多个元素的容器。

2、定义格式
    A、数据类型[] 数组名;
    B、数据类型    数组名[];

3、数组举例
    A、int[] a;
    B、imt a[];

 */

//包名
package com.arr;

//创建类
public class Demo1 {
    // 创建主方法
    public static void main(String[] args) {
        // 数组格式举例
        int[] a;
        int b[];
    }
}

二、数组的初始化之动态初始化

/**
    1、数组的初始化概述
        A、Java中的数组必须先初始化才可以使用。
        B、初始化:就是为数组中的数组元素分配空间,并为每个数组元素赋值。

    2、数组初始化之动态初始化
        A、动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
            1.格式:数据类型[] 数组名 = new 数据类型[数组长度]

        B、数组的格式分析
            1.数组长度:就是数组中元素的个数
            2.数据类型:就是数组中数据的类型
            3.new :为数组分配(开辟)内存空间
            4.[]  :说明这是一个数组。

        C、注意事项
            1、数组中的每个元素都是有编号的,并且是从0开始,最大编号是数组长度的-1。
            2、数组中编号称之为索引,通过数组名访问数据的格式是:数组名[索引];
 */

//包名
package com.arr;

//创建类
public class Demo2 {
    // 创建主方法
    public static void main(String[] args) {
        // 创建动态数组:只分配数组的长度,值由系统自动分配。
        int[] arr = new int[2];
        // 打印数组地址值:[I@8dc8569
        System.out.println(arr);
        // 访问数组中的元素:每个元素是从0开始
        System.out.println(arr[0]);
        System.out.println(arr[1]);

    }
}

三、Java的内存分配与数组图解

这里写图片描述

四、Java数组内存代码与图解

/**
    1、Java数组中的内存图解
        A、数组内存图解之一个数组:代码+图解
        C、数组内存图解之两个数组:代码+图解

 */
//包名
package com.arr;

//创建类
public class Demo3 {
    // 创建主方法
    public static void main(String[] args) {
        /**
            内存图解之一个数组
         */
        // 创建数组
        int[] arr = new int[3];
        // 打印数组地址值:[I@8dc8569
        System.out.println(arr);
        // 打印数组的元素:默认值都是0
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        // 给数组中元素赋值
        arr[0] = 1;
        arr[1] = 10;
        arr[2] = 20;
        // 重新打印
        System.out.println(arr[0]);// 1
        System.out.println(arr[1]);// 10
        System.out.println(arr[2]);// 20
    }
}

这里写图片描述

五、数组指向另一个数组图解

//包名
package com.arr;

//创建类
public class Demo4 {
    // 创建主方法
    public static void main(String[] args) {
        /**
             三个数组(两个栈变量指向同一个堆内存)
         */
        // 创建数组
        int[] arr = new int[3];
        // 打印数组的地址值[I@8dc8569
        System.out.println(arr);
        // 打印数组中的元素
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);

        // 将arr2数组指向arr数组。
        int[] arr2 = arr;
        // 打印数组的地址值[I@8dc8569 地址值与arr一样、
        System.out.println(arr2);
        // 给数组赋值
        arr2[0] = 1;
        arr2[1] = 3;
        arr2[2] = 5;
        // 重新打印
        System.out.println(arr2[0]);
        System.out.println(arr2[1]);
        System.out.println(arr2[2]);
    }
}

这里写图片描述

六、数组的静初始化与使用

/**
            A、静态数组的创建与使用
                格式:数据类型[] 数组名 = {元素1,元素2,...};
            B、举例    
                复杂版:int[] arr = new int{1,2,2};
                简化版:int[] arr = {1,4,2};

*/
//包名
package com.arr;

//类名
public class Demo5 {
    // 主方法
    public static void main(String[] args) {
        // 创建静态数组.
        int[] arr = { 1, 2, 3 };
        // 打印数组名
        System.out.println(arr);
        // 打印数组元素
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
    }
}

七、操作数组中常出的两个问题

//包名
package com.arr;

//类名
public class Demo6 {
    // 主方法
    public static void main(String[] args) {

        /**
            A、操作数组中常见的问题。
                1、数组索引越界异常
                    java.lang.ArrayIndexOutOfBoundsException
                2、数组空指针异常
                    java.lang.NullPointerException
         */

        int[] arr = { 13, 4, 5 };
        System.out.println(arr[0]);
        System.out.println(arr[1]);
        System.out.println(arr[2]);
        // System.out.println(arr[3]);//访问了超出数组中的长度

        arr = null;// 给数组赋予空常量null。
        // System.out.println(arr[0]); //数组以及赋予了空的值,再去访问它肯定出问题
    }
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值