String VS StringBuffer

来源:互联网 发布:java hadoop开发 编辑:程序博客网 时间:2024/04/28 13:10

大家可能都知道了,对于字符串的链接操作StringBuffer的性能要比String好!但是,这是为什么呢?原因如下:

这是StringBuffer中的源代码:

public final class StringBuffer    extends AbstractStringBuilder    implements java.io.Serializable, CharSequence{
跟踪到AbstractStringBuilder后的源码:

abstract class AbstractStringBuilder implements Appendable, CharSequence {    /**     * The value is used for character storage.     */    char value[];

再看看String中的源代码:

public final class String implements java.io.Serializable, Comparable<String>, CharSequence {    /** The value is used for character storage. */    private final char value[];

相信,到这里大家都看出原因了吧!对!就是因为value[]前面多了一个final的修饰,可以想象一下,这意味着什么?

对!意味着:每次对String数组做一次修改,都要重新申请内存(因为被final修饰的变量是不能被修改的),然后再将以前的内容拷贝到新申请的内存中去;但是StringBuffer则不用,他只有当数组不够用的时候,才回去重新申请内存!故:这就是在字符串连接的操作中StringBuffer表现比String出众的根本原因。






原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果笔记本电脑屏幕坏了怎么办 平板开关键坏了怎么办 平板电脑电池坏了怎么办 平板电脑充电口坏了怎么办 平板电脑系统坏了怎么办 平板电脑充电器坏了怎么办 平板电脑触摸屏坏了怎么办 平板电脑关不了机怎么办 平板电脑触摸屏没反应怎么办 平板电脑声音太小怎么办 平板电脑频碎了怎么办? 淘宝直播展示频道排后怎么办 网店头像改不了怎么办 被骗了7500追不回来怎么办 steam中国版原来的游戏怎么办 老公买驾照被骗妻子应该怎么办 被淘密码骗了怎么办 逛街手机没电了怎么办 电脑登入密码忘了怎么办 晚上睡不好觉经常做梦怎么办 开淘宝店开始零销量怎么办 淘宝店开直通车后销量怎么办 淘宝直播一开始直播没人该怎么办 淘宝店铺访客数据下滑怎么办 2个ctrl键都失灵怎么办 淘宝上搜索不到很久以前订单怎么办 关键词找不到了是不是被降权怎么办 购买小程序关键词想退款怎么办? 浏览器审查元素不拆分关键词怎么办 拼多多商品想重新编辑怎么办 新开店铺没有销量怎么办 新开的店铺没有销量怎么办 淘宝的商品权重下降是怎么办 360n5手机耗电快怎么办 怪兽充电宝丢了怎么办 有已处置的评价怎么办 淘宝降权了怎么办2018 使用虚假广告词被工商查到怎么办 为什么手机淘宝店关注不了怎么办 淘宝买东西付钱后卖家不发货怎么办 微信销售群没人买东西怎么办