Java 中String,StringBuffer,StringBuilder的区别
来源:互联网 发布:轻而易举瓷砖设计软件 编辑:程序博客网 时间:2024/05/17 06:08
面试中经常被问及的一个问题,关于三者的区别可以从两个方面区分,jdk源码中都有体现
- 是否可变
从String源码可以看出来,String使用char数据来存储字符串的,但是是用final关键字修饰的,也就是不可变的,同样也可以知道,String并不是Java的基本类型
StringBuffer与StringBuiler都是继承AbstractStringBuilder,也是用char数组来存储字符串,但是内容是可变的。
2. 是否线程安全
String 内容是不可变的,也就是常量,明显是线程安全的,
从StringBuffer源码可以看出,方法都是加了同步关键字的,所以StringBuffer是线程安全的
而StringBuiler的方法没有同步关键字,也就是线程不安全的
以上两点是三者的区别,面试的时候可以使用,但是平常在项目中我们具体如何使用可以根据具体的需求
如果是对线程安全没有要求,且字符串有变化的,那么StringBuiler是最理想的
如果对线程安全有要求,且字符串有变化的,那么StringBuffer是最理想的
如果是常量定义的话,String是最理想的。
阅读全文
0 0
- JAVA中String、StringBuffer、StringBuilder的区别
- Java中String,StringBuffer,StringBuilder的区别?
- JAVA中String、StringBuffer、StringBuilder的区别
- java中String、StringBuilder、StringBuffer的区别
- Java中String, StringBuffer, StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- Java中String,StringBuffer,StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- Java中String、StringBuffer、StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- java中String、StringBuffer、StringBuilder的区别
- [知了堂学习笔记] 原生Ajax
- iOS 解决“tableView如果内容不够一屏幕,又想滚动到上面,不让他反弹回来”的简单方法
- 深度学习网络设计:卷积的设计操作
- 1900页Python系列PPT分享六:面向对象程序设计(86页)
- 细胞问题
- Java 中String,StringBuffer,StringBuilder的区别
- 数字签名是什么?
- 「职场套路」那些心照不宣的职场套路,工作多年还不知道?
- Unix/Linux 编程:网络编程之一 Socket
- html+css+js 固定的底部悬浮菜单栏
- tk.mapper mybatis 插件注意点
- 苹果详解规模化学习,利用「局部差分隐私」技术提升用户体验
- 转换流
- 块状链表 代码小记