手机
当前位置:查字典教程网 >编程开发 >Java >深入解析StringBuffer和StringBuilder的区别
深入解析StringBuffer和StringBuilder的区别
摘要:做项目中经常用到String和StringBuilder,String可以用“+”来对字符串进行拼接,StringBuilder用appen...

做项目中经常用到String和StringBuilder,String可以用“+”来对字符串进行拼接,StringBuilder用append进行拼接,一直不明白既然可以用String,问什么还要用StringBuilder。尽管在做数据库查询的时候,习惯性的用了StringBuilder对查询语句进行拼接,但仍然不知道原因。今天看视频的时候,又看到了StringBuffer,感觉用法又差不多,所以特意查了一下这些东西的区别。

归纳如下:

1.在执行速度方面的比较:StringBuilder > StringBuffer

2.StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了。

3.StringBuilder:线程非安全的

StringBuffer:线程安全的

当我们在字符串缓冲去被多个线程使用是,JVM不能保证StringBuilder的操作是安全的,虽然他的速度最快,但是可以保证StringBuffer是可以正确操作的。当然大多数情况下就是我们是在单线程下进行的操作,所以大多数情况下是建议用StringBuilder而不用StringBuffer的,就是速度的原因。

对于三者使用的总结:

1.如果要操作少量的数据用 String

2.单线程操作字符串缓冲区 下操作大量数据 StringBuilder

3.多线程操作字符串缓冲区 下操作大量数据 StringBuffer

【深入解析StringBuffer和StringBuilder的区别】相关文章:

基于request.getAttribute与request.getParameter的区别详解

基于指针pointers和引用references的区别分析

Java修饰符 abstract,static,final 的区别详解

java abstract class interface之间的区别介绍

深入Synchronized和java.util.concurrent.locks.Lock的区别详解

深入Sqlite多线程入库的问题

深入理解java中的synchronized关键字

深入Java冒泡排序与选择排序的区别详解

解析web.xml中在Servlet中获取context-param和init-param内的参数

Java overload和override的区别分析

精品推荐
分类导航