Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “和”之间有什么区别吗;对象[]x“;及;对象x[]”;?_Java_Arrays_Declaration - Fatal编程技术网

Java “和”之间有什么区别吗;对象[]x“;及;对象x[]”;?

Java “和”之间有什么区别吗;对象[]x“;及;对象x[]”;?,java,arrays,declaration,Java,Arrays,Declaration,我正在用Java更新一个遗留代码库,发现一行代码如下: Object arg[] = { new Integer(20), new Integer(22) }; 这句话引起了我的注意,因为我已经习惯了这种代码: Object[] arg = { new Integer(20), new Integer(22) }; 数组的内容在这里并不重要。我很好奇变量名旁边的括号和类名旁边的括号。我在Eclipse(Java5)中进行了尝试,这两行代码对编译器都是有效的 这些声明之间有什么区别吗 没有区别

我正在用Java更新一个遗留代码库,发现一行代码如下:

Object arg[] = { new Integer(20), new Integer(22) };
这句话引起了我的注意,因为我已经习惯了这种代码:

Object[] arg = { new Integer(20), new Integer(22) };
数组的内容在这里并不重要。我很好奇变量名旁边的括号和类名旁边的括号。我在Eclipse(Java5)中进行了尝试,这两行代码对编译器都是有效的


这些声明之间有什么区别吗

没有区别。两者都是合法的

您可以阅读Java语言规范

[]可以作为类型的一部分出现 在宣言开始时, 或者作为 特定变量,或两者,如 这个例子:

byte[] rowvector, colvector, matrix[];

两者都是合法的,而且都有效。但建议将[]放在数组名称之前

发件人:

也可以将方括号放在数组名称之后:

然而,传统不鼓励这种形式;括号用于标识阵列类型,并应与类型名称一起出现


不,他们都工作。但请注意:

float anArrayOfFloats[], aSecondVariable;
将声明一个浮点数数组和一个浮点数,同时:

float[] anArrayOfFloats, aSecondVariable;

将声明两个浮点数组。

简短回答:否。

编写
Integer[]ints
而不是
Integer ints[]
的另一个好理由是继承关系:
Integer[]
Number[]
的子类型,是
对象[]
的子类型


换句话说,您可以将
整数
放入
对象
数组中,这样您就可以将
[]
视为对象类型定义的一部分——这就是为什么让它靠近类型而不是对象名是有意义的。

矩阵1特别有害。)将[]与类型放在一起更加清晰;尝试将“[]”读作“数组”-int[]读作“int数组”,而int-variableName[]则是在事后加上了“数组”部分。
float[] anArrayOfFloats, aSecondVariable;