String、StringBuffer、StringBuilder和StringTokenizer的区别
2018-01-05 10:49
573 查看
1.String,StringBuffer和StringBuilder的对比:
(1)String用于字符串操作,属于不可以变类
StringBuffer也用于字符串操作,属于可变类
(2)String可以利用构造函数方式初始化,也可以使用赋值的方式来初始化
StringBuffer只能使用构造函数方式初始化
(3)String字符串修改时,实现方法是首先创建一个StringBuffer,其次调用StringBuffer的append()方法,最后调用StringBuffer的toString()方法把结果返回,实例如下:
等价于下述代码:
在字符串被修改时,会比StringBuffer多很多附加的操作,同时会生成一些临时的对象,由于这些无用的对象会被拉结回收器回收,因此会影响程序的性能。
(4)StringBuilder也可以被修饰字符串,但是StringBuilder不是线程安全的,单线程时使用StringBuilder效率更高些,多线程访问,最好使用线程安全的StringBuffer,因为StringBuffer可以对这些方法进行同步。
总结:执行效率,StringBuilder最高,StringBuffer次之,String最低,一般,操作的数据量较少,优先使用String类,如果单线程下操作大量数据,优先使用StringBuilder,多线程下操作大数据,优先使用StringBuffer。
(1)String用于字符串操作,属于不可以变类
StringBuffer也用于字符串操作,属于可变类
(2)String可以利用构造函数方式初始化,也可以使用赋值的方式来初始化
StringBuffer只能使用构造函数方式初始化
(3)String字符串修改时,实现方法是首先创建一个StringBuffer,其次调用StringBuffer的append()方法,最后调用StringBuffer的toString()方法把结果返回,实例如下:
String s = "Hello"; s+="World";
等价于下述代码:
StringBuffer sb = new StringBuffer(s); sb.append("world"); s = sb.toString();
在字符串被修改时,会比StringBuffer多很多附加的操作,同时会生成一些临时的对象,由于这些无用的对象会被拉结回收器回收,因此会影响程序的性能。
(4)StringBuilder也可以被修饰字符串,但是StringBuilder不是线程安全的,单线程时使用StringBuilder效率更高些,多线程访问,最好使用线程安全的StringBuffer,因为StringBuffer可以对这些方法进行同步。
总结:执行效率,StringBuilder最高,StringBuffer次之,String最低,一般,操作的数据量较少,优先使用String类,如果单线程下操作大量数据,优先使用StringBuilder,多线程下操作大数据,优先使用StringBuffer。
相关文章推荐
- String StringBuilder 和StringBuffer StringTokenizer的区别
- Character , String , StringBuffer , StringBuilder , StringTokenizer 的区别
- Java中String、StringBuffer、StringBuilder、StringTokenizer有什么区别
- 从源码解析Java中String、StringBuilder、StringBuffer的区别
- String,StringBuffer与StringBuilder的区别
- String、StringBuffer和StringBuilder的区别
- java基础复习(一)String、StringBuffer、StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- String、StringBuffer与StringBuilder之间区别
- string,stringbuffer,stringbuilder的区别
- String,StringBuffer与StringBuilder的区别??
- Java 字符相关String, StringBuffer, StringBuilder, StringTokenizer,StringJoiner,strman-java 详解
- String、StringBuffer与StringBuilder之间区别
- Java:String、StringBuffer和StringBuilder的区别
- String与StringBuffer与StringBuilder的区别
- String、Stringbuilder、StringBuffer的区别
- String、StringBuffer与StringBuilder的区别
- Android 字符串拼接总结 String,StringBuffer与StringBuilder的区别??
- String、StringBuffer与StringBuilder之间区别
- String,StringBuffer与StringBuilder的区别??