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

Java开发基础知识之学习篇——String

时间:2019-11-20 15:33:20      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:java   bst   多线程   对象   可变   syn   string类   区别   uil   

String 、StringBuffer 和StringBuilder 的区别是什么?从几个方面来解释。

1、可变性

 String类中使用final关键字字符数组保存字符串,它的长度是不可变的。

 StringBuffer 和 StringBuilder 都继承自AbstractStringBuilder类,而在AbstractStringBuilder中也是使用字符数组保存字符串,但是没有用final关键字修饰,所以这两种对象都是可变的。

2、线程安全性

 String中的对象是不可变的,就是常量,线程安全。

 StringBuffer 对方法加了同步锁(使用synchronized 关键字修饰),因此是线程安全的。

 StringBuild 对方法没有加同步锁,所以是非线程安全的。

3、执行效率

 三者在执行速度方面的比较:StringBuilder > StringBuffer >String 

4、应用场景

  操作少量数据用 String 

  单线程操作大量数据字符串用 StringBuilder

  多线程操作大量数据字符串用 StringBuffer

Java开发基础知识之学习篇——String

标签:java   bst   多线程   对象   可变   syn   string类   区别   uil   

原文地址:https://www.cnblogs.com/cokeHuan/p/11897899.html

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