java中用于存储和操作字符串的类有3个,分别是String,StringBuffer和StringBuilder。
这3个类都是final类型的,也就是说不可以被继承。他们都实现了java.io.Serializable接口。
一、String
String是一个不可变常量,他的值一旦创建就不能再做更改。我们一般对String的操作事实上都是重新建立了一个新的String对象。
创建String对象的两大方式:
1、申明时直接赋值:
String str = "abc";
2、通过构造方法创建,String类一共有15种构造方法,其中常用的有8种分别是:
二、StringBuffer1. String()
2. String(String value)
3. String(StringBuffer sb)
4. String(StringBuilder sb)
5. String(Char[] ch)
6. String(Char[] ch, int offset, int count)
7. String(byte[] b)
8.String(byte[] b , int offset, int count)
是一个可变对象,对它的操作不会再重新创建新的对象,而且是线程安全的。
StringBuffer对象的创建只能通过其构造方法(4种),不能直接像String一样赋值。
三、StringBuilder//创建一个空的字符缓冲区,默认初始容量为16个字符 StringBuffer sb1 = new StringBuffer(); //创建一个空的字符串缓冲区,并指定起初始容量大小 StringBuffer sb2 = new StringBuffer(20); //创建一个给定内容的字符串缓冲区,初始容量为16加上给定字符串的长度 StringBuffer sb3 = new StringBuffer("abcd"); //创建一个给定内容的字符串缓冲区,初始容量为16加上给定字符串的长度 StringBuffer sb4 = new StringBuffer(sb3);
这个类是单线程的,是StringBuffer的简化版,用于多线程不安全。但是在单线程的情况下要币StringBuffer速度更快。使用方法和StringBuffer一样。