zoukankan      html  css  js  c++  java
  • Java的JDK下StringBuffer与StringBuilder的区别

    下载JDK的源码,咱自己分析下:

    用Beyond Compare打开看一下吧

    1.他俩的历史问题:

    StringBuffer:* Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.

    StringBuilder:* Copyright (c) 1994, 2008, Oracle and/or its affiliates. All rights reserved.

    看来StringBuffer比StringBuilder资历要老。

    2.他俩的祖宗派系问题:

    public final class StringBuffer
    extends AbstractStringBuilder
    implements java.io.Serializable, CharSequence

    public final class StringBuilder
    extends AbstractStringBuilder
    implements java.io.Serializable, CharSequence

    看来是同根同宗亲兄弟。

    3.透过名称看本质:

    用Beyond Compare粗略一看,满眼"红色"差异,无非是StringBuffer与StringBuilder的名字问题(中国鲤鱼与美国鲤鱼是一回事,中国鲤鱼到美国成灾了)。

    施展“替换”大法,然后就可以优雅的品代码了。

     总得来说,除了增加或减少的一些方法外,主要是StringBuffer的一些方法比StringBuilder增加了synchronized关键字,本质目的就是为了保证StringBuffer的线程安全性,支持多线程环境。具体如何实现的线程安全,代码量很大,自己细细品味吧!

  • 相关阅读:
    python中xrange和range的异同
    Python:使用threading模块实现多线程编程
    python Queue模块
    Python中pass语句的作用
    Python的作用域
    eclipse颜色配置
    protobuf
    python调试总结
    chardet安装
    Windows下搭建PHP开发环境
  • 原文地址:https://www.cnblogs.com/rgqancy/p/5784450.html
Copyright © 2011-2022 走看看