Java静态初始化(有new 和 没new 的区别)

先看两段代码:

第一段代码:

int[] arr={3,3,5,9,11};

arr= new int[]{3,3,5,9,11};//new的方式静态初始化

第二段代码:

int[] arr={3,3,5,9,11};

arr= {3,3,5,9,11};//不用new的方式

以上两段代码,都是静态初始化数组,但是第2中方式会报错
Java静态初始化(有new 和 没new 的区别)

所以是什么原因, 网上一大堆帖子说:有new和没new 没有区别,没new 的 编译器会自动加上new。 但是现在又 一个可以 一个不可以, 所以这显然是有区别的。所以我这里想知道,是什么原因

回答

int[] arr={3,3,5,9,11}; 这是静态初始化的一个语法糖而已,实际还是new出来的

arr= {3,3,5,9,11}; 这个和上面的含义就完全不一样了,相当于int[] arr这个变量的赋值,java不支持这种语法

以上是 Java静态初始化(有new 和 没new 的区别) 的全部内容, 来源链接: utcz.com/a/71624.html

回到顶部