Java基础04_数组

好看的图

基本概念

数组的概念:是一种容器,可以同时存放多个数据值
数组的特点:
1.数组是一种引用数据类型
2.数组当中的多个数据,类型必须统一
3.数组的长度在程序运行期间不可改变

定义数组

注意

  • 静态初始化没有直接指定长度,但仍会自动推算到长度。
  • 静态初始化标准格可以拆分成两个步骤。
  • 动态初始化也可以拆分成俩个步骤。
  • 动态初始化一旦使用省略格式,就不能拆分成俩个步骤。

如果确定数组中的内容就使用静态初始化,不确定数组中的具体内容则使用动态初始化。

import java.util.Scanner;

public class demo02_Array {
    public static void main(String[] args) {
        //动态定义
        //长度不可改变
        int[] a = new int[10];
        double[] b = new double[5];
        String[] c;
        c = new String[3];
        //静态初始化
        int[] d = new int[]{1, 2, 3, 4, 5};
        int[] d1 = {1, 2, 3, 4, 5,};
        //数组内存地址
        System.out.println(a);//[I@1b6d3586
        //获取长度
        System.out.println(d1.length);
        //遍历数组中的元素
        for (int i = 0; i < 5; i++) {
            System.out.print(d[i] + " ");
        }
        //输入1 2 3 4 5 6 7 8 9 10
     /*   Scanner sc = new Scanner(System.in);
        for (int i = 0; i < 10; i++) {
            a[i] = sc.nextInt();
        }*/
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
        //b.fori
        for (int i = 0; i < b.length; i++) {
            System.out.print(b[i] + " ");
        }
        //比较最大的数
        int max = 0;
        for (int i = 0; i < d1.length; i++) {
            if (max < d1[i]) max = d1[i];
        }
        System.out.println(max);

        //数组反转
        int t = 0;
        for (int i = 0; i < d.length / 2; i++) {
            t = d[i];
            d[i] = d[d.length - i - 1];
            d[d.length - i - 1] = t;
        }
        for (int i = 0; i < d.length; i++) {
            System.out.print(d[i] + " ");
        }
        printf(d);
        aa();
    }

    //数组参数参数
    public static void printf(int[] a) {
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i] + " ");
        }
    }

    //返回值为数组
    public static int[] aa() {
        int[] a = new int[10];
        return a;
    }
}

越界

java.lang.ArrayIndexOutOfBoundsException

1.数组的索引号从0开始,一直到数组长度-1为止。
2.如果访问数组元素的时候,索引不存在,就会发生数组越界异常。
错误例子:

public class demo02_Array_Crossing {
    public static void main(String[] args) {
        int[] a = new int[10];
        System.out.println(a[10]);//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
    }
}

空指针

所有的引用类型变量,都可以赋值为一个null值。但是代表其中什么也没有。
数组必须进行new初始化才能使用其中中的元素。
如果不进行new创建。那么就会发生空指针异常:

java.lang.NullPointerException

错误例子:

public class demo02_Array_Crossing {
    public static void main(String[] args) {
        int[] a = null ;
        System.out.println(a[10]); java.lang.ArrayIndexOutOfBoundsException: 10
    }
}
//java.lang.NullPointerException
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值