你光建立了一个存放StringBuffer的数组,但是其中每个StringBuffer你还没有new呢,所以出错,应该改为
public class WhatHappens { 
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); 
  } 


解决方案 »

  1.   

    同意楼上!
    另外,我感觉(看书之后,没特别记住)StringBuffer一般应对在不太变化的情况,String则相反,也可能记反了,看看think in java吧!
    这个例子试验有余,实用性不足~
      

  2.   

    String是用来存储不怎么变化的字符串,本质上对String进行字符串修改拼接等操作时,String都是自动被转换成StringBuffer进行操作,最后再用toString()方法转成String对象
      

  3.   

    StringBuffer 是用在经常需要append的情况下,特别是用的很多的情况下,StringBuffer比String快非常多
      

  4.   

    对!~
    作为StringBuffer数组你只是初始化了这个数组,里面的每个StringBuffer对象还没初始化呢!~当然抱错。