4.5.2 定义数组

4.5.2 定义数组

Java语言支持两种语法格式来定义数组:

1
2
type[] arrayName;
type arrayName[];

对这两种语法格式而言,通常推荐使用第一种格式。因为第一种格式不仅具有更好的语意,而且具有更好的可读性。
对于type[] ArrayName;方式,很容易理解这是定义一个变量,其中变量名是arrayName而变量类型是type[]
前面已经指出:type[]确实是一种新类型,与type类型完全不同(例如int类型是基本类型,但int[]是引用类型)。
因此,这种方式既容易理解,也符合定义变量的语法。
但第二种格式type ArrayName[]的可读性就差了,看起来好像定义了一个类型为type的变量,而变量名是arrayName这与真实的含义相去甚远.

类似语言Java的C#就不再支持type arrayName[]这种语法,它只支持第一种定义数组的语法。越来越多的语言不再支持type arrayName[]这种数组定义语法。

定义数组时不能指定长度

数组是一种引用类型的变量,因此使用它定义一个变量时,仅仅表示定义了一个引用变量(也就是定义了一个指针),这个引用变量还未指向任何有效的内存,因此定义数组时不能指定数组的长度。而且由于定义数组只是定义了一个引用变量,并未指向任何有效的内存空间,所以还没有内存空间来存储数组元素,因此这个数组也不能使用,只有对数组进行初始化后才可以使用。