This question already has answers here:
Initializing array with values - should I explicitly instance the class or not?
                            
                                (3个答案)
                            
                    
                在11个月前关闭。
        

    

我想了解两种写数组类型之间是否存在区别。

我尝试在此处进行检查,但未发现任何类似的问题。

之间有什么区别?

String[] arr = new String[]{"ab","axc"};




String[] arr2 ={"ab","axc"};

最佳答案

没有区别String[] arr2 = { "ab", "axc" }只是syntactic sugar

根据Java Language Specification § 10.6


  数组初始值设定项可以在字段声明(第8.3节,第9.3节)或局部变量声明(第14.4节)中指定,也可以在数组创建表达式(第15.10.1节)中指定,以创建数组并提供一些初始值。


仅在字段声明或局部变量声明中可以省略new String[]


  每个变量初始化器都必须与数组的组件类型兼容(第5.2节),否则会发生编译时错误。


例子:

// This works:
String[] array = { "abc", "def" };

// This does not:
String[] array2;
array2 = { "abc", "def" };

09-30 15:54
查看更多