int []数组和int array []之间的区别
我最近一直在思考定义数组的两种方式之间的区别:
int []数组
int array []
有区别吗?
解决方案
它们在语义上是相同的。仅添加了" int array []"语法来帮助C程序员习惯Java。
int [] array
是更可取的,并且不易混淆。
在Java中,这些只是说同一件事的不同语法方法。
他们是一样的。 (对某些人而言)一种比另一种更具可读性。
它们是完全等效的。首选[int [] array]样式。 int array []
仅作为等效的C兼容样式提供。
没什么区别,但Sun建议按照此处的说明将其放在类型旁边
这两个命令是同一件事。
我们可以使用以下语法来声明多个对象:
int[] arrayOne, arrayTwo; //both arrays int arrayOne[], intOne; //one array one int
请参阅:http://java.sun.com/docs/books/jls/second_edition/html/arrays.doc.html
如果我们碰巧在同一声明中声明了多个变量,则有一点细微的区别:
int[] a, b; // Both a and b are arrays of type int int c[], d; // WARNING: c is an array, but d is just a regular int
注意这是不好的编码风格,尽管当我们尝试使用d时,编译器几乎肯定会捕获错误。
两者之间没有任何区别。都声明了一个int
的数组。但是,前者是首选,因为它将类型信息全部保留在一个地方。仅出于C / C ++程序员迁移到Java的利益,才真正支持后者。
没有不同。
从Sun引用:
The [] may appear as part of the type at the beginning of the declaration, or as part of the declarator for a particular variable, or both, as in this example: byte[] rowvector, colvector, matrix[]; This declaration is equivalent to: byte rowvector[], colvector[], matrix[][];
没有区别。
我更喜欢type [] name
格式,很明显该变量是一个数组(不必四处寻找它是什么)。
编辑:
哦,等等,这是有区别的(我忘记了,因为我一次从未声明多个变量):
int[] foo, bar; // both are arrays int foo[], bar; // foo is an array, bar is an int.
没有真正的区别;然而,
double[] items = new double[10];
首选,因为它清楚地表明类型是数组。
最优选的选项是int [] a
,因为int []
是类型,而a
是名称。
(第二个选项与此相同,但放错了位置)
在功能上它们之间没有区别。
Java语言规范说:
The [] may appear as part of the type at the beginning of the declaration, or as part of the declarator for a particular variable, or both, as in this example: byte[] rowvector, colvector, matrix[]; This declaration is equivalent to: byte rowvector[], colvector[], matrix[][];
因此,它们将导致完全相同的字节码。
不,这些都是一样的。然而
byte[] rowvector, colvector, matrix[];
等效于:
byte rowvector[], colvector[], matrix[][];
取自Java Specification。那意味着
int a[],b; int[] a,b;
是不同的。我不建议使用这些多个声明中的任何一个。最容易阅读的可能是:
int[] a; int[] b;
两种声明样式在功能上没有区别。两者都声明一个int数组。
但是int [] a
将类型信息保持在一起,并且更加冗长,因此我更喜欢它。
两者具有相同的含义。但是,这些变体的存在也允许这样做:
int[] a, b[];
与以下内容相同:
int[] a; int[][] b;
但是,这是可怕的编码风格,绝不应该这样做。
是的,完全一样。就个人而言,我更喜欢
int[] integers;
因为它使得对阅读代码的任何人而言立即显而易见的是,整数是int的数组,而不是
int integers[];
这并没有那么明显,特别是如果我们在一行中有多个声明的话。但同样,它们是等效的,因此归结为个人喜好。
在Java数组上查看此页面,以获取更多深入的示例。
两者都还可以。我建议选择一个并坚持下去。 (我做第二个)
它们是相同的,但是这些语句之间存在重要的区别:
// 1. int regular, array[]; // 2. int[] regular, array;
1.常规只是一个int,而2.常规和array都是int的数组。
因此,第二条陈述是更可取的,因为它更清晰。根据有关Oracle的本教程,不建议使用第一种形式。
虽然" int integers []"解决方案源于C语言(因此可以认为是"常规"方法),但许多人发现" int [] integers"更具逻辑性,因为它不允许创建不同类型的变量(即int和一个数组)在一个声明中(与C样式声明相反)。