String:
不可变类,对象一旦被创建,其值将不能被改变,因此适合再需要被共享的场合中使用,而当一个字符串经常需要被修改,尽可能不使用String。实例化String时,可以利用构造函数(String str=new String(“hello”))的方式去进行初始化也可以通过赋值(String str=“hello”)的方式去初始化.
String字符串修改原理:
当用String类型来对字符串进行修改时,其实现方法是首先创建一个StringBuilder,其次调用StringBuilder的append()方法最后调用StringBuilder的toString()方法把结果返回。
StringBuffer:
可变类,当对象被创建后仍然可以对其值进行修改。StringBuffer只能使用构造函数(StringBuffer s=new StringBuffer(“hello”))的方式初始化。线程安全。
StringBuilder:
可变类,与StringBuffer类似,都是字符串缓冲区,但StringBuilder不是线程安全的,如果只是在单线程中使用字符串缓冲区,那么String Builder的效率会更高些。
在执行效率方面,StringBuilder最高,StringBuffer次之,String最低。
如果要操作的数据量比较小,应优先使用String类;
如果是在单线程下操作大量数据,应优先使用StringBuilder类;
如果是在多线程下操作大量数据,应优先考虑StringBuffer类。
StringTokenizer:
用来切割字符串的工具类
import java.util.StringTokenizer;
public class StringTokenizerDemo {
public static void main(String[] args) {
StringTokenizer stringTokenizer=new StringTokenizer("Welcome to our country");
while (stringTokenizer.hasMoreTokens()){
System.out.println(stringTokenizer.nextToken());
}
}
}
运行结果:
Welcome
to
our
country