java中操作字符串常见类说明及操作字符串常见类的区别说明

书欣 Java面经 发布时间:2023-06-29 21:02:53 阅读数:4929 1

Java常见操作字符串类

Java中操作字符串类有以下三个:
     String
	 StringBuffer(线程安全)
     StringBuilder(非线程安全)

String、 StringBuffer(线程安全)、 StringBuilder(非线程安全)三者区别

区别一:对象创建方式

String和StringBuffer、StringBuilder区别:
   String声明的是不可变的对象,每次操作都会生成新String对象
     然后将指针指向新String对象
   StringBuffer、StringBuilder可在原有对象的基础上进行操作
     经常改变字符串内容的情况下
	  笔者建议不要使用String
      应该选择使用StringBuffer或StringBuilder类
public class TestClass {

    public static void main(String[] args) {
        StringBuilder builder = new StringBuilder();
        for(int i = 0; i < 10; i++) {
            if(builder.length() > 0) {
                builder.append(",");
            }
            builder.append("i=").append(i);
        }
        System.out.println(builder.toString());
    } 
}

//运行以上代码,将输出以下信息
i=0,i=1,i=2,i=3,i=4,i=5,i=6,i=7,i=8,i=9

区别二:线程安全

StringBuffer和StringBuilder最大的区别在于
   StringBuffer是线程安全而StringBuilder是非线程安全
但StringBuilder性能高于StringBuffer
   所以在单线程环境下笔者推荐使用StringBuilder
   多线程环境下推荐使用StringBuffer
例:
public class TestClass {
 
    public static void main(String[] args) {
        int n = 100000;
        stringBuffer(n);
        stringBuilder(n);
    }
 
    private static void stringBuilder(int n) {
        long start = System.currentTimeMillis();
        StringBuilder builder = new StringBuilder();
        for(int i = 0; i < n; i++) {
            builder.append("i=").append(i);
        }
        System.out.println("StringBuilder " + (System.currentTimeMillis() - start) + "ms");
    }
 
    private static void stringBuffer(int n) {
        long start = System.currentTimeMillis();
        StringBuffer buffer = new StringBuffer();
        for(int i = 0; i < n; i++) {
            buffer.append("i=").append(i);
        }
        System.out.println("StringBuffer " + (System.currentTimeMillis() - start) + "ms");
    }
 
}

//运行以上代码,将输出以下信息
StringBuffer 38ms
StringBuilder 20ms
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/202306/16880438126934.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者