如下程序: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),之后才会使用。