zoukankan      html  css  js  c++  java
  • 面试题:String,StringBuilder,StringBuffer三者的区别

    摘要:总结Java中的String,StringBuilder,StringBuffer三者的区别和联系。

      Java中的String,StringBuilder,StringBuffer这三个类之间的区别主要集中在两个方面,即运行速度线程安全这两方面。

      String:字符串常量,这就导致每次对String的操作都会创建新的String对象,不仅效率低,而且浪费有限的内存空间;故适用于少量的字符串操作的场景。

      StringBuilder:线程不安全,适用于单线程下在字符缓冲区进行大量操作的情况。

      StringBuffer:线程安全,适用于多线程下在字符缓冲区进行大量操作的情况。

      一般情况下,操作执行速度从快到慢依次是:StringBuilder > StringBuffer > String。这种比较是相对的,不是绝对的。String最慢的原因:String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,进行值操作的时候,是需要重新创建String对象的,但后两者的对象是变量,是可以更改的。

      作为程序员,要有“刨根问底”的精神。知其然,更要知其所以然。这篇文章希望能抽丝剥茧,还原背后的原理。


      读后有收获,小礼物走一走,请作者喝咖啡。

    赞赏支持

  • 相关阅读:
    EOJ 1068 石子游戏-B
    二分图匹配(匈牙利算法模板)
    注入(3)--远程线程注入(CreateRemoteThread)
    cmd运行Java命令时编译通过,但是找不到主类或无法加载主类
    Java线程的两种实现方法
    Java String类一些操作的内存问题
    Java构造方法的继承调用
    Android布局(5)--绝对布局(AbsoluteLayout)
    Android布局(4)--相对布局(RelativeLayout)
    Android布局(3)--帧布局(FrameLayout)
  • 原文地址:https://www.cnblogs.com/east7/p/14922157.html
Copyright © 2011-2022 走看看