上次课胡zong(丫的,这都屏蔽)谈到String、StringBuffer和StringBuilder之间的区别。
当时对于String和StringBuffer的区别的了解仅仅是StringBuffer可以设置一个缓存区,执行速度也比String要快。
而对于StringBuilder,说实话,从来没有用过。
刚刚google了一把,对这哥三的区别大概有了一些了解。
关于String:
String是一个不可变对象,意思是,如果你修改String类型的对象的值,在JVM中的过程是,先创建一个新的String对象,并将修改后的值给这个新的String对象,再将变量指向这个新的对象。因为String是不可变的。
关于StringBuffer:
StringBuffer相当于一个缓冲区,可以直接对其类型的对象进行修改操作,而不必再创建一个对象。所以,如果在字符串经常改变的情况下,使用StringBuffer要比String速度快
关于StringBuilder:
StringBuilder具有StringBuffer的全部功能,只是它是只能用于单线程,多线程不安全。所以,如果是多线程的话,应该使用StringBuffer
关于StringBuffer的线程安全的思考:
这个线程安全应该跟多个进程对共享资源的访问同步差不多,在同一时间只能有一个线程对
StringBuffer进行访问,即线程之间要实现互斥,如何实现互斥呢?
在每个线程需要访问StringBuffer时,都要对StringBuffer的状态进行判断,如果已经有
一个线程在访问,则等待。
那么StringBuffer比StringBuilder多花费的时间应该就是这个判断的时间。
分享到:
相关推荐
String,StringBuffer,StringBuilder区别。几乎所有的应用开发都离不开操作字符串,理解字符串的设计和实现以及相关 工具如拼接类的使用,对写出高质量代码是非常有帮助的
String StringBuffer和StringBuilder 区别之源码解析 从源码角度简单对它们之间的区别进行了验证
String ,StringBuffer与StringBuilder的区别
String及StringBuffer和StringBuilder的区别
介绍了String、StringBuffer、StringBuilder的使用方法,以及理论知识
简单的介绍了String、StringBuffer和StringBuilder的区别
StringBuffer:字符创变量 StringBuilder:字符创变量 从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问 ,比如这段代码:
String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别 String、StringBuilder和StringBuffer的区别
string,stringbuffer,stringbuilder
string,stringBuffer,stringBuilder
String、StringBuffer 和 StringBuilder 的区别 碎碎念 简单认识这三个对象 String StringBuffer StringBuilder 深入理解 String、StringBuilder、StringBuffer 从设计角度理解 String StringBuilder StringBuffer ...
Java中String,StringBuffer与StringBuilder的区别和用法。
对于很多Java行业的菜鸟来说,弄清楚String;StringBuffer;StringBuilder三者之间的区别是很有必要的,很多面试面试官都会问到这个知识点。集合网络上很多牛人的各种经典分析的总结,花了两个小时概括总结得出了现在...
目录StringStringBuffer与StringBuilder总结 String ...StringBuffer与StringBuilder 这两者基本相似,都是可变字符串对象,主要区别为线程是否安全。 总结 最后,引用菜鸟教程下的总结以及相关评论: S
BATJ面试题讲解-String、StringBuffer、StringBuilder的区别
主要介绍了Java 中 String,StringBuffer 和 StringBuilder 的区别及用法的相关资料,需要的朋友可以参考下
和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。 在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,...
同时,我们将探讨StringBuffer和StringBuilder类的区别以及何时使用它们。通过学习本文,您将掌握如何灵活使用StringBuffer和StringBuilder类来处理字符串,并了解它们在不同场景下的应用和性能特点
它们与String类类似,但是不同之处在于,StringBuffer和StringBuilder可以修改字符串内容,而String对象是不可变的; StringBuffer和StringBuilder类的用法基本相同,但StringBuilder类的效率更高,因为它不是线程...
主要介绍了java 中String和StringBuffer与StringBuilder的区别及使用方法的相关资料,在开发过程中经常会用到String 这个类进行操作,需要的朋友可以参考下