String字符串是常量,不可变,所以如果要对已有的String进行修改,就会生成一个新的String对象,然后将应用指向常量池中新的string对象,被废弃的对象过多,jvm则会启动GC,这将严重影响系统性能。
StringBuffer和StringBuilder都用于可变的字符串对象,它们会在每次创建字符串的时候,都预留空间作为缓冲区,如果字符串实际使用的空间超过一定限度,那么缓冲区的大小则会扩大,所以不存在新建对象的情况,也不会造成废弃对象过多,效率自然要比String好的多,StringBuffer和StringBuilder都有同样的api,它们最常用的方法是insert和append,顾名思义,append用于在已有的字符串后面追加字符串,insert则用于在已有字符串的某一位置插入新的字符串。
Java怎么会出现两个相同作用的类?当然不会,StringBuffer是线程安全的,StringBuilder是非线程安全的,所以单线程的环境中,尽量使用StringBuilder,因为它比StringBuffer要快一些,但是如果字符串对象在多个线程中共享,那么就要用StringBuffer了。
在实际的使用中,有些人只要字符串相加就放弃使用String,这是有问题的,如果你的字符串是在初始化赋值的时候就进行+运算,然后不会对其进行修改,还是要用String,比如String str = “abd”+“cjd”,java赋值的过程中不会生成两个字符串对象,而是直接将abdcjd赋值给str变量,这样比新建StringBuffer或者StringBuilder要快多了。
有问题敬请拍砖,不过拍完后记得评论中指出。
相关推荐
String StringBuffer和StringBuilder 区别之源码解析 从源码角度简单对它们之间的区别进行了验证
String,StringBuffer,StringBuilder区别。几乎所有的应用开发都离不开操作字符串,理解字符串的设计和实现以及相关 工具如拼接类的使用,对写出高质量代码是非常有帮助的
下面小编就为大家带来一篇浅谈java中String StringBuffer StringBuilder的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
StringBuffer:字符创变量 StringBuilder:字符创变量 从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问 ,比如这段代码:
String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别
String、StringBuffer 和 StringBuilder 的区别 碎碎念 简单认识这三个对象 String StringBuffer StringBuilder 深入理解 String、StringBuilder、StringBuffer 从设计角度理解 String StringBuilder StringBuffer ...
介绍了String、StringBuffer、StringBuilder的使用方法,以及理论知识
String ,StringBuffer与StringBuilder的区别
简单的介绍了String、StringBuffer和StringBuilder的区别
stringbuilder用法 String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String、StringBuilder、StringBuffer 用法比较String...
String及StringBuffer和StringBuilder的区别
java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间有什么区别呢?下面小编给大家总结了Java中String、StringBuffer、StringBuilder的区别详解,需要的朋友参考下吧
主要介绍了Java 中 String,StringBuffer 和 StringBuilder 的区别及用法的相关资料,需要的朋友可以参考下
string,stringbuffer,stringbuilder
string,stringBuffer,stringBuilder
主要介绍了java 中String和StringBuffer与StringBuilder的区别及使用方法的相关资料,在开发过程中经常会用到String 这个类进行操作,需要的朋友可以参考下
目录StringStringBuffer与StringBuilder总结 String ...StringBuffer与StringBuilder 这两者基本相似,都是可变字符串对象,主要区别为线程是否安全。 总结 最后,引用菜鸟教程下的总结以及相关评论: S
String,StringBuilder,StringBuffer
String、StringBuilder以及StringBuffer的区别
Java中String,StringBuffer与StringBuilder的区别和用法。