记得vamcily 曾问我:“为什么获取数组的长度用.length(成员变量的形式),而获取String的长度用.length()(成员方法的形式)?” 我当时一听,觉得问得很有道理.做同样一件事情,为什么采用两种风格迥异的风格呢?况且,Java中的数组其实是完备(full-fledged)的对象,直接暴露成员变量,可能不是一种很OO的风格.那么,设计Java的那帮天才为什么这么做呢? 带着这个疑问,我查阅了一些资料,主要是关于“JVM是如何处理数组”的. 数组对象的类是什么? 既然数组都是对象