zoukankan      html  css  js  c++  java
  • StringBuffer与StringBuilder的区别比较

    关于AbstractStringBuilder

      首先通过查看源码发现,StringBuffer与StringBuilder都继承自AbstractStringBuilder抽象类。而AbstractStringBuilder类又实现了Appendable, CharSequence两个接口。这两个接口主要是实现可扩展和序列化。

      

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

    关于StringBuffer和StringBuilder

    通过查看StringBuffer部分源码,发现StringBuffer中的方法都采取了synchronized关键字,即方法都是采取线程锁的方式。而这些是StringBuilder所没有的,所以StringBuffer是线程安全的,但StringBuilder不是。同时,在大部分情况下StringBuilder的速度要快于StringBuffer。

     1     @Override
     2     public synchronized void setLength(int newLength) {
     3         toStringCache = null;
     4         super.setLength(newLength);
     5     }
     6 
     7     /**
     8      * @throws IndexOutOfBoundsException {@inheritDoc}
     9      * @see        #length()
    10      */
    11     @Override
    12     public synchronized char charAt(int index) {
    13         if ((index < 0) || (index >= count))
    14             throw new StringIndexOutOfBoundsException(index);
    15         return value[index];
    16     }
    17 
    18     /**
    19      * @since      1.5
    20      */
    21     @Override
    22     public synchronized int codePointAt(int index) {
    23         return super.codePointAt(index);
    24     }
  • 相关阅读:
    并发编程(一) 操作系统基础和进程
    操作系统发展史
    网络编程(三) 大文件传输与UDP通信
    网络编程(二)-socket套接字
    网络编程(一)
    排序算法之冒泡法
    第二章 算法基础 思考题2-1
    查找算法之二分查找
    排序算法之归并排序
    排序算法之插入排序
  • 原文地址:https://www.cnblogs.com/vi3nty/p/8484248.html
Copyright © 2011-2022 走看看