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

    1.在执行速度方面: StringBuilder > StringBuffer > String

    String最慢的原因:String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。

    用String+的方式,每循环一次,就会重新new一个StringBuffer对象,这样的内存消耗完全是不必要的

    String str="abc";
    System.out.println(str);
    str=str+"de";
    System.out.println(str);

     输出为"abc"和"abcde",从结果上看str变量的值被改变了,而实际上第一行创建一个String变量str,并赋值为"abc",到第三行时实则是又创建了一个String变量str,并将以前的str的值上加上"de",而之前的str将被JVM的GC垃圾回收器回收,所以,Java中对String对象进行的操作实际上是一个不断创建新的对象并且将旧的对象回收的一个过程,所以执行速度很慢。

    2.从线程安全方面: StringBuilder是线程不安全的,而StringBuffer是线程安全的

    总结:

    String:适用于少量的字符串操作的情况

    StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况

    StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况

  • 相关阅读:
    数据攻略●R语言自述
    测试实例
    xml反射
    过滤器
    使用s标签来进行简单的表格配置
    将Spring、Hibernate、Struts2连接起来
    Spring容器
    初见Spring框架
    Spring框架的AOP
    Hibernate里面的几个方法
  • 原文地址:https://www.cnblogs.com/goodbye-lazy/p/10194822.html
Copyright © 2011-2022 走看看