• Java中的String,StringBuilder,StringBuffer三者的区别?


    package com.aaa.zxf.ajax.test;
    
    /**
     * 弄清楚  string   stringBuilder   StringBuffer 三者之间的关系?
     *
     *
     * 一、 三者都是用来对字符串进行操作,
     *         String通常用来定义一个变量,
     *         而StringBuilder StringBuffer则通常用来对字符串进行拼接等操作
     *
     * 二、线程安全
     *      在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的
     *
     * 三、 总结一下
     *   String:适用于少量的字符串操作的情况
     *
     *   StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
     *
     *   StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
     *
     */
    public class TestString {
        /**
         *  查看源码  被final 修饰的。
         *  private final char value[];
         *
         *  所以 string 修饰的是定长,不可变的。
         *
         */
        String h0="123";
    
        String h1=new String("12");
    
        String h2=h0 + h1;
    
        /**
         * 得到 "12312"
         *
         * 底层不可变  就会创建三个对象  占用内存
         * 一直都未失去引用 无法回收垃圾
         * 浪费资源
         */
    
        /**
         * StringBuilder 和 StringBuffer 都是继承了AbstractStringBuilder
         *
         * char 没有被final 修饰 内容是可变的。
         *
         */
        StringBuilder hah=new StringBuilder();
    
    
        /**
         * 查看源码得知。。
         * StringBuffer在拼接字符串时,使用了同步锁,安全性提高,而StringBuilder未使用同步锁,故效率提高。
         */
        StringBuffer h = new StringBuffer() ;
    
    
    }
  • 相关阅读:
    Poj1163 The Triangle(动态规划求最大权值的路径)
    Poj1258_Agri-Net(最小生成树)
    Poj1258_Agri-Net(最小生成树)
    Poj1218_THE DRUNK JAILER(水题)
    Poj1218_THE DRUNK JAILER(水题)
    Poj1298_The Hardest Problem Ever(水题)
    Poj1298_The Hardest Problem Ever(水题)
    Poj1012_Joseph
    Poj1012_Joseph
    Poj_1008--Maya Calendar
  • 原文地址:https://www.cnblogs.com/ZXF6/p/11508718.html
Copyright © 2020-2023  润新知