首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java中stringbuffer辨析

2012-09-06 
java中stringbuffer剖析浏览了一个string与stringbuffer在添加n个字符串时的效率问题,忍不住翻了下源代码,

java中stringbuffer剖析

浏览了一个string与stringbuffer在添加n个字符串时的效率问题,忍不住翻了下源代码,string就不想多说了,final标示的,每次用“+”来连接新的字符串必须创建新的字符串对象,因此效率太低,

?

stringbuffer内部实用array实现,看一下扩容的方法,当append空间不够时,大小变为原来的2倍,然后用arraycopy复制。:

?

//数组扩容   void expandCapacity(int minimumCapacity) {      //先扩容成 (原先的长度+1)*2      int newCapacity = (value.length + 1) * 2;      //判断newCapacity值是否满足要求       //如果新的长度还是不够,则直接取值 minimumCapacity       if (newCapacity < 0) {         newCapacity = Integer.MAX_VALUE;      } else if (minimumCapacity > newCapacity) {         newCapacity = minimumCapacity;      }         char newValue[] = new char[newCapacity];      //将原先的数据拷贝到新的char 数组中。       System.arraycopy(value, 0, newValue, 0, count);      value = newValue;  }

热点排行