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

Java连载75-StringBuffer和StringBuilder

时间:2020-01-19 00:08:02      阅读:74      评论:0      收藏:0      [点我收藏+]

标签:jpg   pow   rgs   后台   ack   main   node   变换   package   

一、StringBuffer和StringBuilder

1.StringBuffer是什么?

答:是一个字符串缓冲区,工作原理:预先在内存中申请一块空间以容纳字符序列,如果预留的空间,则进行自动扩容,以容纳更多的字符序列。

2.StringBuffer\StringBuilder和String最大的区别

String是不可以变的字符序列,存储字符串常量池中

StringBuffer底层是一个char数组,但是该char数组是可以变的,并且可以自动扩容

3.StringBuffer和StringBuilder的默认初始化容量是16

4.如何优化StringBuffer和StringBuilder

最好在创建StringBuffer之前,预测StringBuffer的存储字符数量,然后再创建StringBuffer的时候采用指定初始化容量的方式创建StringBuffer,为了减少底层数组的拷贝,提高效率。

5.StringBuffer和StringBuilder的区别?

StringBuffer是线程安全的,即可以在多线程的环境中使用,是安全的。

StringBuilder是非线程安全的,即在多线程的环境中使用这个类可以会出现问题。

 

package com.bjpowernode.java_learning;

?

public class D75_1_StringBufferAnalysis {

  public static void main(String [] args) {

    //创建字符串缓冲区对象

    StringBuffer s1 = new StringBuffer();//16//这个类的参数里面可以传入整数,代表初始化多大的空间,如果不写,默认就是16

    //可以向StringBuffer中追加字符串

    String[] ins = {"Physical","music","sleep","gourmet"};

    //推荐字符串频繁拼接使用StringBuffer和StringBuilder,不要使用String

    for(int i =0;i<ins.length;i++) {

      if(i==ins.length-1) {

        s1.append(ins[i]);

      }else {

        s1.append(ins[i]);

        s1.append(",");

      }

    }

    System.out.println(s1);

  }

}

 

技术图片 

二、源码:                                        

D75_1_StringBufferAnalysis.java

https://github.com/ruigege66/Java/blob/master/D75_1_StringBufferAnalysis.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

?技术图片

Java连载75-StringBuffer和StringBuilder

标签:jpg   pow   rgs   后台   ack   main   node   变换   package   

原文地址:https://www.cnblogs.com/ruigege0000/p/12210671.html

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