从性能上看,下面的代码有何不妥,为什么?
 
class A
{
      public static void main(String[] args) 
 
       {
              String str="";
              for(int i=0;i<100;i++)
              {
                     str+=(char)i;
              }
              System.out.println(str);
       }
}

解决方案 »

  1.   

    String因为是不可变类,每次执行一次String的+操作实际上都要新建一个String作为副本返回,频繁的+的时候因为生成很多的String副本,会浪费堆内存,因此考虑采用StringBuffer或者StringBuilder进行优化
    因为这两个是可变类,运行的时候只是对一个对象进行操作,没有开辟新的副本拷贝
    class A
    {
      public static void main(String[] args)  {
      StringBuffer sb=new StringBuffer();
      for(int i=0;i<100;i++)
      {
      sb.append((char)i);
      }
      System.out.println(sb.toString());
      }
    }