zoukankan      html  css  js  c++  java
  • String、Stringbuffer、StringBuffer回顾

    前言

      久了没用到,一下子就忘了。。,参考文章:https://www.cnblogs.com/su-feng/p/6659064.htmlhttps://baijiahao.baidu.com/s?id=1629804867201303563&wfr=spider&for=pc

    区别:这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。

    一、运行速度:  StringBuilder > StringBuffer > String  

    String最慢的原因

      String为字符串常量,

      StringBuilder和StringBuffer均为字符串变量,

      String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。

    二、线程安全 :  StringBuilder是线程不安全的,而StringBuffer是线程安全的

      不严格要求安全时,常用效率比较高的StringBuilder

    三、总结:

    1、在字符串不经常发生变化的业务场景优先使用String(代码更清晰简洁)。如常量的声明,少量的字符串操作(拼接,删除等)。

    2、在单线程情况下,如有大量的字符串操作情况,应该使用StringBuilder来操作字符串。不能使用String"+"来拼接而是使用StringBuilder,避免产生大量无用的中间对象,耗费空间且执行效率低下(新建对象、回收对象花费大量时间)。如JSON的封装等。

    3、在多线程情况下,如有大量的字符串操作情况,应该使用StringBuffer。如HTTP参数解析和封装等。

  • 相关阅读:
    mysql基础(三)
    mysql基础(二)
    Mysql基础(一)
    Less32-Less-33
    Less-27
    Less-26
    Less-25
    Less-23
    Less18-Less19
    Less13-Less-14
  • 原文地址:https://www.cnblogs.com/yuanmaolin/p/11062842.html
Copyright © 2011-2022 走看看