我们可以确定ArrayList<E>使用其公共方法的长度size(),例如
ArrayList<Integer> arr = new ArrayList(10);
int size = arr.size();
Run Code Online (Sandbox Code Playgroud)
类似地,我们可以Array使用length属性确定对象的长度
String[] str = new String[10];
int size = str.length;
Run Code Online (Sandbox Code Playgroud)
虽然size()方法ArrayList是在ArrayList类中定义的,但是这个length属性是在哪里Array定义的?
如果String对象是不可变的(因此显然不能改变它的长度),为什么是length()一个方法,而不是简单地public final int length存在于数组中?
它只是一个getter方法,还是进行某种计算?
试着看看这背后的逻辑.
是否有一个特定的设计/性能原因,为什么String有一个长度方法但Array有一个可变长度?