String、StringBuffer和StringBuilder的区别及应用场景

1.    String:字符串常量

  StringBuffer:字符串变量(线程安全)

  StringBuilder:字符串变量(线程不安全)

2.String:每次改变String的值,都要新创建一个对象,再将引用指向该对象,浪费内存空间,内存中的无用引用多了以后,jvm的GC就开始工作,系统就会慢了。

StringBuffer:StringBuffer每次都是对对象本身进行操作,而有种特殊情况String要比StringBuffer快:

      String s="This"+"is a pen";

      StringBuffer sb=new StringBuffer("This").append("is a pen");

    创建上面这两个的速度其实都差不多,但是下面这种就能体现出StrignBuffer的优势了

      String s1="This";

      String s2="is a pen";

      String s3=s1+s2;

StringBuilder:在字符串缓存区被单个线程使用。

那么重点来了:具体使用场景,我找到了一个很有用的:https://www.zhihu.com/question/20101840

猜你喜欢

转载自www.cnblogs.com/zhaomin08240115/p/9257034.html
今日推荐