数组两种有初始化方式:静态初始化和动态初始化:
- 静态初始化
int[] arr=new int[]{1,2,3,4,5};
- 静态初始化时内容已经确定,长度根据内容推断出来。
- 动态初始化
int[] arr=new int[3];
arr[0]=1;
arr[1]=2;
arr[3]=3;
- 动态初始化时仅指定长度,内容后续指定。
{1,2,3}
和new int[]{1,2,3}
的区别
- 在声明数组和初始化同时进行时,两种方式没有区别
int[] arr=new int[3]{1,2,3};
int[] arr={1,2,3};
- 在需要先声明数组变量再后续进行赋值时,只能使用
new int[3]{1,2,3}
这种方式
int[] arr;
arr=new int[3]{1,2,3};
int[] arr;
arr={1,2,3};//报错
- 原因
标签:初始化,arr,int,问题,数组,推断,new From: https://www.cnblogs.com/bestwangyulu/p/17338160.htmljava编译器具有类型推断机制,在代码
int[] arr={1,2,3};
中,根据变量arr
前面的int[]
推断出来{1,2,3}
推断成new int[]{1,2,3}
。但是写成两个行时,编译器就无法推断出来。