String、StringBuffer、StringBuilder被称为字符串三姐妹。在不考虑多线程的情况下,字符串效率为StringBuilder类>StringBuffer类>StringBuilder类
String
字符串在开发出是最常用的。为了方便我们对字符串的操作,Java把字符串进行了封装,这个封装类就是String类,属于java.lang包。
常用构造方法为:
空构造 public String()
参数为字节数组 public String(byte[] bytes)
参数为字符数组 public String(char[] value)
字符串一旦初始化就不可以被改变,这里指的是内存空间中值的不可变。
String类中包含较多的方法,主要包括:
- String类的判断功能方法
- String类的获取功能方法
- String类的转换功能方法
- String类的其他功能方法
StringBuffer
StringBuffer类是字符串缓冲区,跟String类似用来存储字符串数据。StringBuffer类属于java.lang包。
常用构造方法:
public StringBuffer();无参构造方法,构造一个空的字符串缓冲区,初始容量为16个字节。
public StringBuffer(int capacity),构造一个指定容量的空的字符串缓冲区。
public StringBuffer(String str),使用一个字符串作为初始内容来构造一个字符串缓冲区,并在构面预留16个字符的空缓冲区。
StringBuffer类和String类有很多都一样或者相似,但是也有不同的地方,主要区别如下:
- StringBuffer类侧重于对缓冲区的增、删、改等操作。
- String内容是不可变的,但是StringBuffer是可变的,并且线程是安全的。
StringBuilder
StringBuilder类和StringBuffer类是兼容的,即两个类基本一样。
总结
如果是少量的、不频繁的字符串操作,首选String
如果是单线程大量、频繁的操作字符串,推荐StringBuilder
如果是多线程大量、频繁的操作字符串,只能StringBuffer
如果是单线程大量、频繁的操作字符串,推荐StringBuilder
如果是多线程大量、频繁的操作字符串,只能StringBuffer