zoukankan      html  css  js  c++  java
  • String,StringBuffer,StringBuilder区别(笔记)

    String类被final修饰,创建的对象为不可变对象,属于字符串常量。

    而StringBuffer与StringBuilder创建的属于字符串常量。

    StringBuffer的方法大多用了Synchronized关键字修饰添加了同步锁。而StringBuilder没有。

    所以StringBuffer是线程安全的而StringBuilder是线程不安全的。

    由于String的对象属于不可变对象,所以在一些情况下对其操作会产生许多无用的中间对象,如拼接截取和替换,

    如果频繁地操作会对性能有所影响。当内存里的无用对象多了以后,JVM的GC就会开始工作,速度是非常慢的。

    StringBuffer与StringBuilder对比,前者线程安全后者线程不安全。所以多线程情况下,若有大量的字符串操作,应

    使用StringBuffer。若为单线程,由于StringBuilder没有加锁,而StringBuffer加了许多同步锁,每次操作都得判断锁,

    所以效率没有StringBuilder高。但对字符串有大量操作时,StringBuffer和StringBuilder都是比String快的。

    总结:

    若并没有大量字符串操作则使用String。否则根据线程情况,

    若为单线程,则使用StringBuilder;若为多线程,则使用StringBuffer。

  • 相关阅读:
    realsense d435i qt 测试
    realsense d435i 数据 测试
    realsense d435i测试
    ubuntu torch GPU yolov5
    IfcLayeredItem
    ubuntu大服务器 pytorch环境配置
    condarc内容
    realsense point cloud
    yolov5 环境配置
    pip error
  • 原文地址:https://www.cnblogs.com/vibe/p/11767080.html
Copyright © 2011-2022 走看看