• 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的知识的可以关注后续博客

  • 相关阅读:
    request Dispatch
    xmlHTTPRequest
    java 文件上传
    文件上传(2)
    文件上传
    Tomcat 加入windows 服务自启动设置
    windows下配置两个或多个Tomcat启动的方法
    HibernateProxy异常处理 java.lang.UnsupportedOperationException: Attempted to serialize java.lang.Class: org.hibernate.proxy.HibernateProxy. Forgot to register a type adapter?
    checkbox遍历操作, 提交所有选中项的值
    tomcat结合nginx使用 基础教程
  • 原文地址:https://www.cnblogs.com/chenyuanbo/p/7493167.html
Copyright © 2020-2023  润新知