String、StringBuffer、StringBuilder区别

1. 说明


在我们开发项目过程中,肯定少不了对字符串的操作,这个一定是有的。其实在java中操作字符串一般有3种类型,分别是String、StringBuffer、StringBuilder。而且这三种也有一定的差别,并且其适用范围也是不一样的,那么接下来我们就对这3种操作字符串的类型来做一个小的总结。

2. 总结


String:

1>:操作长度不可变的字符串,原理是一个final修饰的字符数组,

private final char value[];

因为用final修饰了,所以对象长度不可变;

2>:如果需要多个字符串,可以直接用 + 号就可以拼接字符串,优点是方便,缺点是如果需要拼接的字符串特别多,那么 每用一个 + 号,就相当于 创建了一个对象,会比较消耗内存;

StringBuffer与StringBuilder:

1>:二者都是继承 AbstractStringBuilder
2>:操作的字符串长度可以改变,并且操作的是一个对象,不像String创建多个对象;
StringBuffer:线程安全,效率低
StringBuilder:线程不安全,效率高;

三者总结:
如果操作数据比较少 ,使用String;
单线程操作大量字符串,使用StringBuilder,效率高;
多线程操作大量字符串,使用StringBuffer,安全;

三者执行速度比较:
StringBuilder > StringBuffer > String

绝大多数情况下,我们都是单线程操作的,所以一般推荐使用StringBuilder而不是StringBuffer,使用StringBuilder效率高。

用法如下,先new StringBuffer()或者new StringBuilder(),然后直接用append拼接字符串即可:

StringBuffer sb = new StringBuffer() ;
StringBuilder sb = new StringBuilder() ;
sb.append("您好,").append(myName)

你可能感兴趣的:(String、StringBuffer、StringBuilder区别)