首页 > 技术文章 > Java数组

saxonsong 2021-04-08 11:32 原文

Java 数组

  • 静态初始化

    ​ int[] a = {1,2,3,4,5};

  • 动态初始化

    int[] array = new int[10];

    array[0]= 10;

    数组中没有被初始化全为0

public static void main(String[] args) {
        // 变量类型 变量名 = 变量的值
        //数组类型
    int [] nums;    //推荐定义
    /*int numbers[];  //定义*/
    nums = new int[10];
    System.out.println(nums[0]);
}

//结果 :0
  • 获取数组长度:length

public static void main(String[] args) {
    //给数组赋值
    int[] nums = new int[5];    //第一种方式
    //int[] nums = {1,2,3,4,5};
    nums[0] = 1;
    nums[1] = 2;
    nums[2] = 3;
    nums[3] = 4;
    System.out.println(nums.length);
}

//结果:5

数组的四个基本特点

  • 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的。

  • 其元素必须是相同类型,不允许出现混合类型。

  • 数组中的元素可以是任何数据类型 ,包括基本类型和引用类型。

  • 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的

  • 下标从0开始。

当你使用不合法的索引访问数组时会报数组越界这种错误,数组arr的合法错误范围是[0, arr.length-1];当你访问这之外的索引时会报这个错。例如:
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        for (int i = 0; i <= arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}


//结果
java.lang.ArrayIndexOutOfBoundsException: 3
at Test.main(Test.java:5)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at edu.rice.cs.drjava.model.compiler.JavacCompiler.runCommand(JavacCompiler.java:272)

java.lang.ArrayIndexOutOfBoundsException :数组下标越界错误

推荐阅读