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。

  • 相关阅读:
    Linux 笔记
    查看 Linux 系统版本信息
    在网站中添加 https 百度分享
    Linux 中 Xampp 的 https 安全证书配置
    Windows 笔记
    Linux 笔记
    CentOS7 自定义登录前后欢迎信息
    构建器内部的多形性方法的行为
    编译dubbo项目方法
    《Thing in java》多态
  • 原文地址:https://www.cnblogs.com/vibe/p/11767080.html
Copyright © 2011-2022 走看看