首页 > 其他 > 详细

StringBuffer和String需要注意的

时间:2015-08-16 12:08:48      阅读:131      评论:0      收藏:0      [点我收藏+]

  首先,StringBuffer的toString方法和String的subString方法都是在新生成了一个新的String。  

  最近做的一个功能,多线程的从SQLite数据库中读取数据。将数据拼成在MySQL中可以批量执行的SQL语句,再多线程地插入到MySQL中。

  SQL语句类似:Insert Into tableXXX (colum1,colum2,colum3) values (value1,value2,value3),(value1,value2,value3),(),...;

 

  用到了StringBuffer的toString方法,这样是有潜在危险的。上面的SQL会非常的大,我这里一次从SQLite数据库中读取2000条数据。

  拼成的SQL语句调用toString时,是基于原来的StringBuffer生成了一个String。原来的StringBuffer不释放时,新的String就存在引用关系。

    这在大数据量的情况下将被放大。

 

  类似的问题也存在于String的subString方法,是基于原来的String生成了一个String。速度得到了提升,但是却存在内存泄露的问题。JDK1.7中针对这个问题做出了修正。

  

  

StringBuffer和String需要注意的

原文:http://www.cnblogs.com/lnlvinso/p/4733942.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!