• 谈谈 StringBuffer 和 StringBuilder 的历史故事


    1.前言

      众所周知,StringBuffer 是线程安全的 ,而StringBuilder 不是线程安全的  ,但是 StringBuilder 速度会更快。

    事实上 作为一个字符串拼接 方法 ,在线程安全的应用场景几乎没有 【在频繁进行字符串运算(如拼接、替换、删除等),并且运行在多线程环境中,

    则可以考虑使用StringBuffer,例如XML解析、HTTP参数解析和封装。】,但考虑到线程安全,首先应该相对加锁,

    可是有了 锁 ,字符串拼接 就没必要一定是线程安全的了 ,会极大的拖慢运行速度 【这就是以前为什么说java 运行速度慢的 一个重要因素】,

    因此应该 使用 StringBuilder 。

    2.那为什么会有StringBuffer的存在?

      原因很简单 ,因为最早是没有 StringBuilder 的,那时候只有StringBuffer。

      sun的人不知处于何种愚蠢的考虑,决定让stringbuffer是线程安全的,然后大约10年之后,人们终于意识到这是一个多么愚蠢的决定,

    意识到在这10年之中这个愚蠢的决定为java运行速度慢这样的流言贡献了多大的力量,于是,在jdk1.5的时候,终于决定提供一个非线程安

    全的StringBuffer实现,并命名为StringBuilder。



  • 相关阅读:
    高精度 模板
    《图论》邻接表
    模板整理
    H
    C
    同余定理的应用(处理大数
    H
    1153: 简易版最长序列
    1152: 二分搜索
    1151: 大整数加法(正数)
  • 原文地址:https://www.cnblogs.com/c2g5201314/p/13111660.html
Copyright © 2020-2023  润新知