Java开发基础知识之学习篇——String
Posted cokehuan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java开发基础知识之学习篇——String相关的知识,希望对你有一定的参考价值。
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的主要内容,如果未能解决你的问题,请参考以下文章