您的位置:首页 > 产品设计 > UI/UE

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()方法把结果返回,实例如下:

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: