它们都是等效的。
- 那么,它们每个都可以编译吗?
是的,您自己也可以验证。
- 如果是的话,有什么区别(如果有)?
- (因为您没有创建新的String []实例,或者在幕后进行了此操作,所以test1的性能比test2好吗?)
编译后的字节码没有区别。
- (如果test1与test3相同:为什么test3和test4与test1和test2相同,则为什么存在?)
这只是写它的一种替代方法,因为数组索引可以放在类型名称之后,也可以放在标识符名称之后。唯一的区别是,如果在一行中声明多个变量,如果将索引放置在类型名称之后,则所有列出的标识符将是该类型的数组,而如果将索引放置在标识符名称之后,则仅该标识符将是数组。
例:
String[] array1, array2; // Both are arraysString array3[], notArray4; // only array3 is array
我建议将索引放在类型(
String[] array1)后面,这样就不会造成歧义。
(除了这四个以外,还有更多(几乎相似)的变体吗?)
从来没听说过。



