zoukankan      html  css  js  c++  java
  • String、StringBuffer与StringBuilder的区别-陈远波

    String Stringbuffer  StringBuilder的区别:

    1、string是字符串常量,且长度是不可改变的,StringbufferstringBuilder是字符串变量

    2、Stringbuffer是线程安全的,StringBuilder是非线程安全,主要用在全局变量中。

    3、String是改变赋值的地址,而不是改变String中的值:

    如:String a = “a”;//假设它的地址是001;值a是放在常量池中的

    String a = “b”;//重新对a赋值后a指向的地址就002,且将值b放入常量池,而之前的值a也是存在的。

    4String是不可变的类,每次对String的操作都会生成新的String对象,不仅效率低下,而且会大量的浪费内存空间,对于StringBuffer,每次结果都会对StringBufer本身进行操作且不会产生新的对象和改变对象的引用,所有一般都使用Stringbuffer

    5、他们三个的运行速度不一样:

    (1)通常情况下,三个的运行速度排列为:StringBuilder>Stringbuffer>String。但也有特殊情况,

    如:String a=”a”+”b”;

    Stringbuffer b=new StringBuilder(”a”)append(”b”);

    以上的话String的速度要大于StringBuffer,因为在这种情况下JVMString a看成了 String a=”ab”了。

    6、运用场景

    (1)如果是操作少量的数据使用String

    (2)单线程操作字符串缓冲区下操作大量数据使用StringBuilder。
    3).多线程操作字符串缓冲区下操作大量数据使用StringBuffer。

    以上知识是我参考xieke90的博客进行整理,以上知识还存在一些不足,望各位多多包涵及补充指正。若需了解更多关于java的知识的可以关注后续博客

  • 相关阅读:
    基于VitralBox 的 OpenEuler系统 安装增强功能
    OpenEuler 操作系统 安装 银河麒麟GUI界面
    OpenEuler 操作系统的安装
    vscode 安装markdown插件 及 实用markdown语法
    无限技能下的密码系统愿景
    商用密码企业调研
    实验四 Python综合实践 ——20191331刘宇轩
    20191331 《Python程序设计》实验三报告
    9.29载入史册的一天
    人生的四天半
  • 原文地址:https://www.cnblogs.com/chenyuanbo/p/7493167.html
Copyright © 2011-2022 走看看