java关于String、StringBuffer、StringBuilder区别

鉴于网上很多人已经对这三者做了描述,自己也是站在巨人的肩膀上的,所以定义文章为转载吧。。


名词解释:
String:在java中,String类是不可变的,对String类的任何改变,都是返回一个新的String类对象。(String对象是System.Char对象的有序集合,用于表示字符串。String对象的值是该有序集合的内容,并且该值是不可变的。)
StringBuffer是字符串变量,它的对象是可以扩充和修改的。
StringBuilder,一个可变的字符串序列。此类提供一个与StringBuffer兼容的API,但不保证同步,此类被设计用作StringBuffer的一个简单替换。

发展历史:
在java中,首先出现的是StringBuffer,StringBuilder类来源于jdk1.5及以后的版本。

三者运行速度:StringBuilder > StringBuffer > String
为什么运行速度是这样的?首先,String操作字符串时,实际上是不断的创建新的对象,而原来的对象就会变为垃圾被GC回收掉,这样你就会发现String的执行效率低的原因。 StringBuffer是线程安全的,StringBuilder是非线程安全的

三者使用情况:
在对比的情况下,String一般静态使用,或少量的操作。
在字符串大量操作的时候,如果可能,建议使用StringBuilder类,因为在大多数实现中,它比StringBuffer要快。在应用程序要求线程安全的情况下,则必须使用stringBuffer类。

猜你喜欢

转载自blog.csdn.net/easy_purple/article/details/80605034