zoukankan      html  css  js  c++  java
  • 【java基础】java字符串之StringBuffer和StringBuilder

    【一】简述区别

    package com.sxf.test.string;
    
    public class StringBufferStringBuilderTest {
        
        public static void main(String[] args) {
            
        }
        
        public static void test01(){
            //线程安全,char数组扩容的公式:value.length * 2 + 2;
            StringBuffer buffer=new StringBuffer();
            buffer.append("a");
            //每次toString都是new一个新的String对象,保存在堆里。
            //toStringCache属性,在每次toString方法,只要不向对象里添加新的字符串,就使用缓存的char数组返回新字符串。
            buffer.toString();
            buffer.trimToSize();
            buffer.capacity();
            
            //线程不安全,char数组的扩容公式: value.length * 2 + 2;
            StringBuilder builder=new StringBuilder();
            builder.append("a");
            //每次toString都new一个新的String对象,保存在堆里。
            builder.toString();
            builder.trimToSize();
            builder.capacity();
            
            //不同点
            //StringBuffer和StringBuilder。StringBuffer是线程安全的类,StringBuilder是非线程安全的类
            //
            
            //相同点
            //StringBuffer和StringBuilder都继承AbstractStringBuilder里
            //StringBuffer和StringBuilder都是fianl修饰的类,不可被重写。
            //StringBuffer和StringBuilder都默认初始化char数组的长度为16,或者带参构造(String.length+16)
            //trimToSize()方法,是去掉char数组没有被存放数值的的多余空间。底层是一次数组的copy
            
        }
    
    }
    View Code
  • 相关阅读:
    C#带日期型默认值参数的函数
    mvc调用webapi上传图片或文件
    mysql增删改查存储过程
    sql 分页存储过程
    sql 出库存储过程
    Ternura
    留言板
    友链
    .net 死锁
    C#微信小程序搜索框
  • 原文地址:https://www.cnblogs.com/shangxiaofei/p/8256780.html
Copyright © 2011-2022 走看看