length和length()到底有什麼區別java
length是屬性,而length()是方法 爲何要這麼回答 下面我來羅列一些列子來講明:數組
你們都知道咱們在定義數組時:數據結構
int []arr = new int [3]; int [] arr2 = {1,2,3};
上面定義了定義了兩個一維數組(數組是容器,既然是容器了length就該是屬性,不知道我這麼說各位是否理解),下面羅列下二維數組:code
int [][]arr = new int [3][]; int [][]arr2 = {{},{}}; System.out.println(arr.length); System.out.println(arr2.length); 3 2
我爲什麼要羅列下二維數組,由於我想強調:數組在定義時就肯定了空間大小。無論是幾維。二維數組 arr[1] 這裏存儲的是:一個一維數組的地址(一維數組的首地址)。 因此這也說明length是個屬性,(數組剛必定義就肯定了該屬性的大小)。io
/*class
補個小插曲:爲何在定義二維數組時,不用指明二維的第二個維度容器
由於二維數組存儲的是一維數組的地址,定義二維數組只要說明,你要定義幾個二維數組就好了方法
*/im
下面須要解釋下String類型,序列的長度爲何是length().數據
String 底層數據結構是 char[],這樣的一個一維字符數組,所以String擁有的就是length()這個方法,而不是length這個屬性。就像Collection這個集合。
//以上是我的看法,若有錯誤請指正。