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

  • 相关阅读:
    判断url的正则表达式
    将Excel数据导入MySql
    需要记一下的
    java笔记
    禁用cookie后
    smarty框架块函数
    php Smarty date_format [格式化时间日期]
    mysql 笔记
    笔记 php.ini配置文件中magic_quotes_gpc, magic_quotes_runtime的作用是什么?应该开启还是关闭?
    php
  • 原文地址:https://www.cnblogs.com/jsit-dj-it/p/15457899.html
Copyright © 2011-2022 走看看