zoukankan      html  css  js  c++  java
  • String StringBuilder StringBuffer的区别

    1.String是final类型的不可以被继承是不可变的

      StringBuffer、StringBuilder是可以变的

    2.速度 StringBuilder>StringBuffer>String

      StringBuffer是线程安全的

      StringBuidler是线程非安全的

    String s1 = This is only a+ simple+ test;
    StringBuffer Sb = new StringBuilder(This is only a).append(simple).append(test);

    Java Compiler直接把上述第一条语句编译为:
    String s2 = This is only a;  
    String s3 = simple;  
    String s4 = test;  
    String s1 = s2 + s3 + s4;

    3.使用策略

      1)少量数据操作可以String;单线程操作用SringBuilder;多线程操作用StringBuffer

      2)不要使用String的“+”来拼接,这样的性能很差;应该用下面的第二种:

    String result = "";  
    for (String s : hugeArray) {  
        result = result + s;  
    }  
      
      
    StringBuilder sb = new StringBuilder();  
    for (String s : hugeArray) {  
        sb.append(s);  
    }  
    String result = sb.toString();

     3)StringBuffer用在全局变量中;StringBuilder用在方法内部中

     3)一般情况下直接用Stringbuffer,因为builder的性能最多提高10%-15%,除非确认不是运行在多线程下并且性能瓶颈是在buffer上。

  • 相关阅读:
    图像的余弦变换
    图像的傅里叶变换
    图像的频域变换
    数字图像处理基本运算
    数字图像处理基本概念
    推荐几款提升效率的神器
    机器学习中常用的距离及其python实现
    打造自己的图像识别模型
    使用Colaboratory的免费GPU训练神经网络
    学霸修炼的秘籍
  • 原文地址:https://www.cnblogs.com/zhengtu2015/p/4871259.html
Copyright © 2011-2022 走看看