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

Java String、StringBuilder、StringBuffer[笔记]

时间:2018-04-26 01:23:47      阅读:159      评论:0      收藏:0      [点我收藏+]

标签:安全   同步机制   一个   不可   style   第一个   操作   赋值   int   

String对象是字符串常量(创建之后不可更改),StringBuilder和StringBuffer对象是字符串变量(可更改),三者主要区别在于执行速度和线程安全。

执行速度

执行速度:StringBuilder > StringBuffer > String

原因:

String对象的更改会不断创建和回收String对象,而StringBuilder、StringBuffer不会。

例如:

String str = “123";
System.out.println(str);
str = str + "456";
System.out.println(str);

JVM是处理这四行代码过程:

1、创建一个String对象,赋值为”123”。

2、打印字符串。

3、创建一个新的String对象,将第1个对象的值加上”456”后赋值给它,并GC(垃圾回收机制)回收掉第一个对象。

4、打印新字符串。

线程安全

StringBuilder:非线程安全的。

StringBuffer:线程安全的(同步机制保障)。

使用场景

String:少量的字符串操作。

StringBuilder:单线程大量字符串操作。

StringBuffer:多线程大量字符串操作。 

Java String、StringBuilder、StringBuffer[笔记]

标签:安全   同步机制   一个   不可   style   第一个   操作   赋值   int   

原文地址:https://www.cnblogs.com/lovesong/p/8947314.html

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