String、StringBuffer、StringBuilder和StringTokenizer的区别

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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值