【发布时间】:2012-10-17 17:31:02
【问题描述】:
当我们谈论数组时,为什么 length 是一个数据字段,而当我们谈论 Java 中的 String 时,为什么是 length()?意思是:
int a[10] = {1,2,3,4,5,6,7,8,9,10};
String str = "foo";
int a_len = a.length;
int str_len = str.length();
为什么长度不是数组的函数,反之亦然?
【问题讨论】:
-
可能是因为数组长度是作为数组对象的一部分存储的,而字符串长度不是并且需要计算。
-
@Shmiddty -- 其实存储的是字符串长度。
-
@HotLicks 很可能与向后兼容性有关?
-
@Shmiddty -- 这绝对是向后兼容。也许还有一些自负。