Java 字符串与数组的区别

2023-12-11

我目前很无聊,正在做一些 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我自己过去,所以我知道其中一个有效)。

  • 那么,这些都可以编译吗?
  • 如果是,有什么区别(如果有)?
  • (Is test1性能优于test2因为你不做一个新的String[]-实例化,或者这是在幕后完成的?)
  • (If test1是相同的test3: 为什么test3 and test4如果与以下内容相同,则在 Java 中存在test1 and test2?有没有使用的情况[]字段名称后面优先于类型后面?)
  • (除了这四种之外,还有更多(几乎相似的)变体吗?)
  • (以及其他类似的问题。)

只是出于好奇想知道。我想我们每天都会学到新东西。


它们都是等价的。

  • 那么,这些都可以编译吗?

是的,你自己也可以验证。

  • 如果是,有什么区别(如果有)?
  • (test1 的性能是否比 test2 更好,因为您没有创建新的 String[] 实例化,或者这是在幕后完成的?)

编译后的字节码没有差异。

  • (如果test1与test3相同:如果与test1和test2相同,为什么还会存在test3和test4?)

这只是另一种编写方式,因为数组索引可以放在类型名称之后以及标识符名称之后。唯一的区别是,如果在一行中声明多个变量,如果索引放在类型名称后面,则所有列出的标识符都将是该类型的数组,而如果索引放在标识符名称后面,则只有该标识符将是数组。

Example:

String[] array1, array2;    // Both are arrays
String array3[], notArray4; // Only array3 is array

我建议将索引放在类型之后 (String[] array1)所以它是明确的。

(除了这四种之外,还有更多(几乎相似的)变体吗?)

从来没听说过。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 字符串与数组的区别 的相关文章

随机推荐