声明一个数组并改变其内容

use*_*925 2 java arrays

我正在编写测试代码来探索数组的属性.为什么这样做

public static void main(String[] args){
    int[] testing={1,2,3};
    for(int i = 0;i<testing.length;i++){
        System.out.println(testing[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

public static void main(String[] args){
    int[] testing= new int[3];
    testing = {1,2,3};
    for(int i = 0;i<testing.length;i++){
        System.out.println(testing[i]);
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么关于Array阻止它有效?

Sot*_*lis 9

因为Java语言规范是这样说的

可以在声明(第8.3节,第9.3节,第14.4节)中指定数组初始值设定项,或者作为数组创建表达式(第15.10节)的一部分,以创建数组并提供一些初始值.

所以你可以像你现在一样使用它

int[] testing = {1,2,3};
Run Code Online (Sandbox Code Playgroud)

或作为数组创建表达式的一部分

testing = new int[]{1,2,3};
Run Code Online (Sandbox Code Playgroud)