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     }
  • 相关阅读:
    Url参数的安全性处理
    redis安装学习
    Spring的IOC原理(转载)
    Linux下jdk&tomcat的安装
    App架构经验总结(转载)
    谈谈对Spring IOC的理解(转载)
    2018,扬帆起航!
    Lua随机问题
    为什么R#警告Warning Delegate subtraction has unpredictable result
    Dotween实现打字机效果,并向下滚屏
  • 原文地址:https://www.cnblogs.com/vi3nty/p/8484248.html
Copyright © 2011-2022 走看看