main方法中的数组声明

时间:2014-05-18 22:27:19

标签: java

我正在阅读并面对我之前没有看到的主要方法的有趣外观。

之间有什么区别吗?
  public static void main(String[] args) 

  public static void main(String a[])        

我认为应用其中任何一个都会给我相同的输出

  public static void main(String a[]){
        List <Integer> li = new ArrayList <Integer>();
        ListIterator <Integer> liItr = null;

        li.add(1);
        li.add(2);
        li.add(3);
        li.add(4);
        li.add(5);
        li.add(6);
        li.add(7);

       liItr = li.listIterator();
       System.out.println("Elemnets in forward direction");
       while(liItr.hasNext()){
           System.out.println(liItr.next());
       }
       System.out.println("Elements in backward direction");
       while(liItr.hasPrevious()){
           System.out.println(liItr.previous());
      }
    }
  }

P.S。我认为自己是Java的初学者。如果有人可以强调给我一些解释,那就太好了

4 个答案:

答案 0 :(得分:2)

来自http://docs.oracle.com/javase/specs/jls/se7/html/jls-10.html#jls-10.2

  

[]可能会显示为该类型的一部分   声明,或作为特定变量的声明者的一部分,   或两者兼而有之。

     

例如:

byte[] rowvector...
     

此声明相当于:

byte rowvector[]...
BTW,没有多少人意识到不幸此规则同时影响Type methodSignature对,而不仅仅Type variable。像

这样的东西
int giveMeArray()[]{
//  ^^^^^^^^^^^^^ - method signature
        return new int[10];
}

也是有效的Java代码。

无论如何,这种声明数组的方式如果你想创建那么有用......比方说2维和3维数组。而不是

int[][] arr2d;
int[][][] arr3d;

你可以写

int[][] arr2d, arr3d[];
//                  ^^-additional dimension

答案 1 :(得分:1)

不,没有区别。唯一的差异是数组声明:

String[] args

VS

String a[]

两者都有效。

来自Java Language Specification. Chapter 10. Arrays. 10.2. Array Variables.(强调我的):

  

例10.2-1。数组变量的声明

int[]     ai;        // array of int
short[][] as;        // array of array of short
short     s,         // scalar short
          aas[][];   // array of array of short
Object[]  ao,        // array of Object
          otherAo;   // array of Object
Collection<?>[] ca;  // array of Collection of unknown type
     

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

     

例如:

byte[] rowvector, colvector, matrix[];
     

此声明相当于:

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

答案 2 :(得分:1)

没有差别。另请参阅http://docs.oracle.com/javase/tutorial/java/nutsandbolts/arrays.html,其中说明了这一点:“您也可以将括号放在数组的名称之后:”,但建议它是错误的形式。

答案 3 :(得分:0)

String[] argsString args[]String a[]一样有效。

Java 没有限制参数命名并授权两种样式的数组声明语法(括号在变量名之前或之后)=&gt;味道很重要。

相关问题