在这个帖子 42 楼,做过了一些实验,有兴趣的话可以去看一下: http://topic.csdn.net/u/20080415/12/3f2b9589-e97c-4129-8941-011bd9203a98.html
同意楼上,当需要对字符串进行多次修改时,最好用StringBuffer
首先String和StringBuffer在低层实现上都是字符数组,只不过String分配的是不大不小的一个数组,你+操作的时候他会根据你+的内容在分配一个正好能容纳的数组,这样你每+操作一次都要重新创建一个新的字符数组。而StringBuffer他初始化如果不指定的话他会分配一个128长度的字符数组(如果没记错是128),然后你每append的操作他都像已创建的数组添加内容,如果快要到128的时候,他会在原有长度上创建一个128*2长度的字符数组。说白了吧,就是用小箱子和大箱子装东西的区别,小箱子装东西你要更多的做把小箱子的东西倒出来找个合适的箱子然后把新加的东西放进去。 至于提到append比+更安全,能防止SQL注入攻击我真是不敢苟同,两个都是为了拼成一个字符串,在哪注入不是一样。
每次使用String的 "+",都是new了一个新的String 对象, 而StringBuffer 的append()方法,都是在原有的对象上进行的操作, 所以StringBuffer 比String 要高效
62,621
社区成员
307,251
社区内容
加载中
试试用AI创作助手写篇文章吧