zoukankan      html  css  js  c++  java
  • 面试题05-String-StringBuffer-StringBuilder

    • String是final修饰的,不可变,每次操作都会产生新的String对象
    public final class String
        implements java.io.Serializable, Comparable<String>, CharSequence,
                   Constable, ConstantDesc {
        ......
    }
    
    • StringBuffer和StringBuilder都是再原对象上操作
    • StringBuffer是线程安全的,StringBuilder是线程不安全的
    • StringBuffer方法都是synchronized修饰的
    public final class StringBuffer
            extends AbstractStringBuilder
            implements java.io.Serializable, Comparable<StringBuffer>, CharSequence {
        /* ...... */
        @Override
        public synchronized int compareTo(StringBuffer another) {
            return super.compareTo(another);
        }
    
        @Override
        public synchronized int length() {
            return count;
        }
    
        @Override
        public synchronized int capacity() {
            return super.capacity();
        }
    
    
        @Override
        public synchronized void ensureCapacity(int minimumCapacity) {
            super.ensureCapacity(minimumCapacity);
        }
    
        /* ...... */
    }
    
    • 性能:StringBuilder>StringBuffer>String
    • 使用场景:

    经常需要改变字符串内容时使用后面两个
    优先使用StringBuilder,多线程使用共享变量时使用StringBuffer

  • 相关阅读:
    CentOS7 安装 MySQL 5.7
    Centos7 安装 opencv
    nginx编译支持HTTP2.0
    CentOS 6.5 安装 ffmpeg
    parted 4T磁盘
    nginx upstream
    linux rar 解压忽略带密码压缩包
    那些实用的Nginx规则
    linux 两台服务器共享目录NFS实现
    redis集群搭建
  • 原文地址:https://www.cnblogs.com/jsit-dj-it/p/15457899.html
Copyright © 2011-2022 走看看