2012-08-22 39 views
8

可能重複:
Why is String.length() a method?
Java - Array's length propertystring.length減()對Array.length

是否有特定設計/性能原因爲何字符串是否具有長度的方法但數組有一個可變長度?

+3

相關:http://stackoverflow.com/questions/9297899/java-arrays-length-property – birryree

+1

也相關http://stackoverflow.com/questions/8720220 –

+0

這不是最終的公共財產,因爲存在不同的實現 - 實際上,有跡象表明當前的實現可能確實被不具有特殊「長度」字段的實現替代。 –

回答

6

Java中沒有Array類(除了反射)。數組是Java中的一種「原始類型」,通過與已聲明的類不同的規則進行播放。

當然可以在數組上定義length()方法,但設計人員希望將length作爲屬性而不是僞方法。 (部分原因可能使得早期的Java實現變得更加容易。)原因在歷史中被埋沒了。 (一個更好的問題是爲什麼Java不能決定是調用「length」,「count」還是「size」這個概念 - 我最終在嘗試所有三種方法之後才選擇了正確的方法聚合類。)