我现在很无聊,正在做一些Java实践测试,因为我已经用Java编程了一段时间了。经过一个问题,我现在想知道以下两者之间的区别:
String[] test1 = { "A", "B", "C" }; String[] test2 = new String[]{ "A", "B", "C" }; String test3[] = { "A", "B", "C" }; String test4[] = new String[]{ "A", "B", "C" };
在Java IDE中键入此命令时,没有出现任何错误。我还没有尝试编译它们中的任何一个(尽管我过去主要使用test2自己,所以我知道其中一个可以奏效)。
test2
test1
String[]
test3
test4
[]
只是出于好奇而想知道。我想每天我们都会学到新东西。
它们都是等效的。
那么,它们每个都可以编译吗?
是的,您自己也可以验证。
如果是的话,有什么区别(如果有)? (因为您没有创建新的String []实例,或者在幕后进行了此操作,所以test1的性能比test2好吗?)
编译后的字节码没有区别。
(如果test1与test3相同:为什么test3和test4与test1和test2相同,则为什么存在?)
这只是写它的一种替代方法,因为数组索引可以放在类型名称之后,也可以放在标识符名称之后。唯一的区别是,如果在一行中声明多个变量,如果将索引放置在类型名称之后,则所有列出的标识符将是该类型的数组,而如果将索引放置在标识符名称之后,则仅该标识符将是数组。
例:
String[] array1, array2; // Both are arrays String array3[], notArray4; // Only array3 is array
我建议将索引放在类型(String[] array1)后面,这样就不会造成歧义。
String[] array1
(除了这四个以外,还有更多(几乎相似)的变体吗?)
从来没听说过。