String、StringBuffer、StringBuilder和StringTokenizer的区别
作者:互联网
1、String :String是不可变类,String对象一旦被创建就不可修改。String来创建一个经常被修改的对象时,会产生很多无用的对象,这些无用的对象将被垃圾回收机制回收,会影响程序的性能。
在实例化时,String可以利用构造函数进行初始化,也可以使用赋值的方式。
2、StringBuffer:StringBuffer是可变类,当对象创建后仍然可。StringBuffer只能使用构造函数方式来初始化。
3、String字符串修改字符原理:首先创建一个StringBuffer,其次调用StringBuffer的append()方法,最后调用StringBuffer的tostring()方法返回结构。
String s = “Hello”;
s+=“world”
等价于
StringBuffer sb = new StringBuffer(s);
s.append("world");s.tostring();
4、StringBuilder:StringBuilder也是可以修改的字符串,与StringBuffer类似,都是字符串缓冲区,但是StringBuilder线程不安全,StringBuffer线程安全,StringBuilder的访问速率会更快。在单线程访问中可以使用StringBuilder,在多线程访问中,更适合使用StringBuffer。
5、执行效率:StringBuilder>StringBuffer>String
6、StringTokenizer:用来分割字符串的工具。
StringTokenizer st = new StringTokenizer(“I like our country”);
while(st.hasMoreTokens()){
System.out.println(st.nextToken());
}
运行结果为:
I
like
our
country
标签:String,StringBuffer,st,StringTokenizer,StringBuilder,字符串 来源: https://www.cnblogs.com/shuo2018/p/11470021.html