string stringbuffer StringBuilder

Posted chump

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了string stringbuffer StringBuilder相关的知识,希望对你有一定的参考价值。

1、String类型的字符串对象是不可变的,一旦String对象创建后,包含在这个对象中的字符系列是不可以改变的,直到这个对象被销毁。
 
2、StringBuilder和StringBuffer类型的字符串是可变的,不同的是StringBuffer类型的是线程安全的,而StringBuilder不是线程安全的
 
3、如果是多线程环境下涉及到共享变量的插入和删除操作,StringBuffer则是首选。如果是非多线程操作并且有大量的字符串拼接,插入,删除操作则StringBuilder是首选。毕竟String类是通过创建临时变量来实现字符串拼接的,耗内存还效率不高,怎么说StringBuilder是通过JNI方式实现终极操作的。
 
4、StringBuilder和StringBuffer的“可变”特性总结如下:
 
(1)append,insert,delete方法最根本上都是调用System.arraycopy()这个方法来达到目的
 
(2)substring(int, int)方法是通过重新new String(value, start, end - start)的方式来达到目的。因此,在执行substring操作时,StringBuilder和String基本上没什么区别。

以上是关于string stringbuffer StringBuilder的主要内容,如果未能解决你的问题,请参考以下文章

转载String和StringBuffer的区别,以及StringBuffer的常用方法介绍

Java——StringBuffer/StringBuilder以及和string区别

String 与StringBuffer比较

String StringBuffer StringBuilder的区别

java(String和StringBuffer分别作为参数传递)

String与StringBuffer的区别