码迷,mamicode.com
首页 > 其他好文 > 详细

StringBuffer和String需要注意的

时间:2015-08-16 12:09:50      阅读:123      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!