数组的初始化问题

发布时间 2023-04-20 20:13:44作者: Wang-YL

数组两种有初始化方式:静态初始化和动态初始化:

  1. 静态初始化
int[] arr=new int[]{1,2,3,4,5};
  • 静态初始化时内容已经确定,长度根据内容推断出来。
  1. 动态初始化
int[] arr=new int[3];
arr[0]=1;
arr[1]=2;
arr[3]=3;
  • 动态初始化时仅指定长度,内容后续指定。
  1. {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};//报错
  • 原因

java编译器具有类型推断机制,在代码int[] arr={1,2,3};中,根据变量arr前面的int[]推断出来{1,2,3}推断成new int[]{1,2,3}。但是写成两个行时,编译器就无法推断出来。