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:多线程大量字符串操作。 

  • 相关阅读:
    30网络通信之多线程
    U盘自动拷贝
    多态原理探究
    应用安全
    应用安全
    编码表/转义字符/进制转换
    代码审计
    文件上传
    渗透测试-Web安全-SSRF
    中间人攻击
  • 原文地址:https://www.cnblogs.com/lovesong/p/8947314.html
Copyright © 2011-2022 走看看