String、StringBuffer和StringBuilder 区别
来源:互联网 发布:入侵学校数据库 编辑:程序博客网 时间:2024/06/10 00:47
一、 三者的区别
String 不可变
StringBuffer和StringBuilder可变
StringBuffer加锁,所以线程安全,但是效率低
StringBuilder不加锁,所以线程不安全,但是效率高
效率排行榜
StringBuilder > StringBuffer > String
二、 String的特殊性
String str1 = "xiao ming "; // 字符串定义在静态区域
String str2 = new String( "xiao ming "); // 字符串定义在堆内存
三、
1.String 不可变
2.StringBuffer加锁,所以线程安全,但是效率低
上图是在JDK 源码中: append() 方法有 加了 (synchronized )同步锁
所以是线程安全的!
3.StringBuilder不加锁,所以线程不安全,但是效率高
上图在JDK源码中 常用方法 append() 截图! 可见并未加同步锁!
四、在什么时候使用 StringBuffer 和 StringBuilder 呢?
1. 在不涉及到线程问题的情况下使用 StringBuilder ;因为效率高。
2. 有涉及到线程问题的情况下使用 StringBuffer ;因为线程安全。
以上是我学习过程中遇到问题 并请教后的结果!
阅读全文
0 0
- String, StringBuffer 和 StringBuilder区别
- String、StringBuffer和StringBuilder 区别
- String ,StringBuffer 和 StringBuilder 区别
- String , StringBuffer 和 StringBuilder 区别
- String StringBuffer 和StringBuilder区别
- 【String,StringBuffer和StringBuilder区别】
- String、StringBuffer和StringBuilder区别
- StringBuilder、StringBuffer和String区别
- String、StringBuilder和StringBuffer区别
- string.StringBuilder和StringBuffer区别
- String、StringBuffer和StringBuilder区别
- String、StringBuffer和StringBuilder 区别
- String和StringBuffer、StringBuilder区别
- StringBuffer和StringBuilder和String的区别
- String和StringBuffer和StringBuilder的区别
- String 和StringBuffer和StringBuilder区别
- String、StringBuffer和StringBuilder使用和区别
- String和StringBuilder和StringBuffer区别
- sqlserver
- JSP知识点总结
- 2017年8月10号提高组T2 飞行
- LeetCode 181. Employees Earning More Than Their Managers
- 第一章:vue2中常见的指令
- String、StringBuffer和StringBuilder 区别
- 查机器CPU过高和内存过高的问题
- python爬虫之伪造报头来采集网页信息
- eclipse中mybatis generator插件的安装及使用
- Largest Rectangle in a Histogram (单调队列)
- 类初始化顺序
- QT项目 MyQQ 学习笔记(一)
- tornado静态文件static命名问题
- 2、java容易忘记的面向对象基础知识