栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java基础02-String,StringBuffer,StringBuilder和StringTokenizer

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java基础02-String,StringBuffer,StringBuilder和StringTokenizer

String,StringBuffer,StringBuilder有什么区别?
  1. String是不可变类,String对象一旦被创建,值不会被改变;StringBuffer是可变类,被创建后仍可以对值修改
  2. String实例化时,可以利用构造函数String s1 = new String("world")的方式,也可以用赋值String s = "Hello"的方式;而StringBuffer只能使用构造函数StringBuffer s = new StringBuffer("Hello")的方式初始化
  3. StringBuilder也是可以被修改的字符串,与StringBuffer类似,都是字符串缓冲区
  4. StringBuilder不是线程安全的,如果只是在单线程使用字符串缓冲区,StringBuilder效率会更高;当有多个线程访问时,使用线程安全的StringBuffer,它会对方法进行同步。
  5. 按照执行效率来排序,StringBuilder最高,StringBuffer次之,String最低。所有如果要操作的数据量比较小,应该优先使用String类;如果在单线程操作大量数据,优先使用StringBuilder;如果在多线程操作大量数据,优先使用StringBuffer。
String字符串修改实现的原理

当用String类型来对字符串进行修改时,实现方法是首先创建一个StringBuffer,其次调用StringBuffer的append方法,最后调用toString方法返回结果

String s = "Hello";
s += "World";

以上代码等价于:

StringBuffer sb = new StringBuffer(s);
s.append("World");
s = sb.toString();

所以可以看出上述过程比StringBuffer多了一些附加的操作,同时生成些临时的对象,导致程序的执行效率降低

StringTokenizer

StringTokenizer是用来分割字符串的工具类

public class Test{
    public static void main(String args[]){
        StringTokenizer st = new StringTokenizer("Welcome to our country");
        while(st.hasMoreTokens()){
            System.out.println(st.nextToken());
        }   
    }
}

运行结果:

Welcome
to 
our 
country
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583678.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号