码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-09-11 21:39:10      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:资源   串操作   color   就会   一个   final   char   大量   定义   

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() ;


}

 

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

标签:资源   串操作   color   就会   一个   final   char   大量   定义   

原文地址:https://www.cnblogs.com/ZXF6/p/11508718.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!