如下程序:
public class ThisHappens {
public static void main(String[] args) {
StringBuffer[] stringBuffers = new StringBuffer[10];
for (int i = 0; i < stringBuffers.length; i ++) {
stringBuffers[i] = new StringBuffer();
stringBuffers[i].append("StringBuffer at index " + i);
}
}
}
既然已经new StringBuffer[10]了,为什么还要加这句stringBuffers[i] = new StringBuffer();
解答:
StringBuffer[] stringBuffers = new StringBuffer[10];
---这一句,是new了一个StringBuffer数组,这个数组有10个StringBuffer作为元素。
stringBuffers[i] = new StringBuffer();
---而这一句,则是将第i个的StringBuffer实例化。
未曾经过实例化(new)而直接使用的对象将会有一个warning,并且在运行时会抛出一个exception。
因此必须先进行一次实例化操作(new),之后才会使用。