String、StringBuffer、StringBuilder、StringTokenizer总结!

来源:互联网 发布:页游服务端源码 编辑:程序博客网 时间:2024/06/05 11:24

    在java中有四个类可以对字符或字符串进行操作,分别是Character、String、StringBuffer和StringTokenizer。其中Character是进行单个字符操作,String用于字符串操作,StringBuffer也是用于字符串,StringTokenizer用于分割字符串。

1.String

          String是不可变类,被final修饰。String对象一旦被创建,其值就不能被修改。String适合在需要被共享的场合使用,当一个字符串需要经常修改的时候,最好不要使用String。这个时候就需要用到StringBuffer。

2.StringBuffer

         StringBuffer与String的一个区别就是StringBuffer是可变的。StringBuffer和String的另一个区别在于当实例化String时,可以利用构造函数String s1 = new String("123");的方式也可以用赋值的方式String s1 = “123”;但是StringBuffer只能使用构造函数StringBuffer s1 = new StringBuffer("123");的方式进行初始化。

        String字符串修改实现的原理:当String类型对字符串进行修改时,其实现的方法是首先创建一个StringBuffer,然后调用后StringBuffer的append()方法,最后调用StringBuffer的toString()方法把结果返回。
        String s1 = "Hello";s1+=" world"; 
        StringBuffer s2 = new StringBuffer(s1); s2.append(" world"); s2.toString();   

3.StringBuilder

        StringBuilder也是可修改的字符串,它与StringBuffer相似,都是字符串缓冲区,但是StringBuilder是线程不安全的,如果只是在单线程中使用字符串缓冲区,那么StringBuilder的效率会更高。当有多个线程进行访问的时候,最好是用线程安全的StringBuffer。因为StringBuffer必要时可以对这些方法进行同步,所以任意特定的事例上的操作就好像是以串行顺序发生的,涉及的每个线程进行的方法调用顺序都是一致的。

4.StringTokenizer

         StringTokenizer是用来分割字符串的工具类。示例代码:
        
 
阅读全文
0 0