• 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。

  • 相关阅读:
    数据结构之队列
    设计模式之策略模式的使用
    搭建一个高可用的redis环境
    Linux遗忘命令
    重温几种排序算法之希尔排序、归并排序、快速排序
    HashMap的简单实现
    Java GC基础
    2016年年终总结
    Shell 备忘录
    Openstack Grizzily 单节点测试机安装( All In One CentOS/RHEL)
  • 原文地址:https://www.cnblogs.com/vibe/p/11767080.html
Copyright © 2020-2023  润新知