java静态初始化问题

public static void main(String[] argv) {

    int i, j=3;
    Scanner input = new Scanner(System.in);
    i = input.nextInt();    
    int[] arr = new int[]{i,j};
    System.out.println(arr[0]+" "+arr[1]);

}
以上程序在编译的时候读到int[]{i,j}时不应该就把arr[]的值初始化好了吗?应该因为i未初始化而无法通过编译啊,为什么还能通过编译,并输出正确的值?难道int[] arr = new int[]{i,j};也是动态初始化?


GCT1015
浏览 236回答 3
3回答

九州编程

i 是个局部变量

偶然的你

Java语言规范了解一下:In the Java programming language, arrays are objects, are dynamically created(动态创建的), and may be assigned to variables of type Object. All methods of class Object may be invoked on an array.

Helenr

i = input.nextInt();这一句不就相当于进行初始化么?如果没有这一句肯定报初始化异常,有了这一句也就意味着 i 的值在编译时是不能确定的。
打开App,查看更多内容
随时随地看视频慕课网APP