【问题标题】:String[] values vs String values[] [duplicate]字符串 [] 值与字符串值 [] [重复]
【发布时间】:2013-11-06 05:37:49
【问题描述】:

我想知道这两个有什么区别

String values[] = new String[10]

String[] values = new String[10]

两者的使用方式相同。我们可以用同样的方式操作它们中的数据,那有什么区别呢。

The Java tutorial 使用后者来声明数组。我们应该使用哪一个?

【问题讨论】:

  • 作为,JavaDoc 更喜欢,使用第二个。

标签: java arrays string


【解决方案1】:

根据语言specification:

[] 可能作为类型的一部分出现在 声明,或作为特定变量声明符的一部分, 或两者兼而有之。

所以是的,它们是相同的。 例如:

byte[] rowvector, colvector, matrix[];

这个声明相当于:

byte rowvector[], colvector[], matrix[][];

【讨论】:

    【解决方案2】:

    两者都是相同的。这些只是数组声明的不同形式 以下是数组声明的不同方式

        String[] x = new String[3];
        String[] x = {"a","b","c"};
        String[] x = new String[]{"a","b","c"};
    
        String x[] = new String[3];
        String x[] = {"a","b","c"};
        String x[] = new String[]{"a","b","c"};
    

    在所有情况下x.length 将输出 3

    【讨论】:

      【解决方案3】:

      真的只是个人喜好问题。我更喜欢String[],因为它清楚地表明 [] 属于变量的类型。但我想也可以找到使用旧语法的原因。

      【讨论】:

        【解决方案4】:

        它们是等价的。

        第一个是更多c风格的语法,所以他们保留在java中。

        【讨论】:

          【解决方案5】:

          两者都是有效的语法,并产生完全相同的字节码。 Oracle(以及正式的 Sun 的)惯例是使用后一种形式 (String[] values = new String[10]),就像您遇到的几乎所有开源项目一样 - 即,这是您应该使用的。

          【讨论】:

            【解决方案6】:

            根据JLS on Arrays

            [] 可以作为类型的一部分出现在声明的开头,或者作为特定变量的声明符的一部分,或者两者兼而有之。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2010-09-12
              • 2019-04-17
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2022-07-05
              • 1970-01-01
              相关资源
              最近更新 更多