http://www.ibm.com/developerworks/cn/web/wa-lo-json/?ca=drs-tp3308StringBuilder sb = new StringBuilder(array.length << 4); 没看出为什么这做.

解决方案 »

  1.   

    StringBuilder sb = new StringBuilder(s.length()+20); 

    StringBuilder sb = new StringBuilder(array.length << 4); 没什么区别。只是产生一个容量为(array.length << 4) 的 StringBuilder对象容量太小,倍长次数多,效率低。
      

  2.   

    左移4位
    换成2进制看就明白了 左移1位相当于*2
    左移4位当然是length*16了
      

  3.   

    这样是直接的位运算
    由于Java的所有运算到最后还是会被转换成位运算 所以直接调用位运算会快些 
    号称最快的运算方式
    但是如果不是大量的运算的话 是看不出来差别的