zoukankan      html  css  js  c++  java
  • Java String、StringBuilder、StringBuffer[笔记]

    String对象是字符串常量(创建之后不可更改),StringBuilder和StringBuffer对象是字符串变量(可更改),三者主要区别在于执行速度和线程安全。

    执行速度

    执行速度:StringBuilder > StringBuffer > String

    原因:

    String对象的更改会不断创建和回收String对象,而StringBuilder、StringBuffer不会。

    例如:

    String str = “123";
    System.out.println(str);
    str = str + "456";
    System.out.println(str);

    JVM是处理这四行代码过程:

    1、创建一个String对象,赋值为”123”。

    2、打印字符串。

    3、创建一个新的String对象,将第1个对象的值加上”456”后赋值给它,并GC(垃圾回收机制)回收掉第一个对象。

    4、打印新字符串。

    线程安全

    StringBuilder:非线程安全的。

    StringBuffer:线程安全的(同步机制保障)。

    使用场景

    String:少量的字符串操作。

    StringBuilder:单线程大量字符串操作。

    StringBuffer:多线程大量字符串操作。 

  • 相关阅读:
    虚拟机设置静态ip
    hadoop2.5重新编译问题
    python(2)-函数相关
    python(1)
    python中raw_input输入数字问题
    多线程-AsyncTask
    Handler消息处理机制
    01-Java多线程
    01.JS基本语法-数据类型和变量
    (4)RecyclerVIew
  • 原文地址:https://www.cnblogs.com/lovesong/p/8947314.html
Copyright © 2011-2022 走看看