JAVA之String,StringBuffer与StringBuilder三者之间的区别
来源:互联网 发布:淘宝店铺经营策略 编辑:程序博客网 时间:2024/06/05 19:54
做了一段时间的开发,但是对于String,StringBuffer和StringBuilder三者还是有诸多的疑问。现在稍微梳理一下:
1、String,StingBuffer,StringBuilder是字符串变量还是常量?
- String ----> 字符串常量
- StringBuffer ----> 字符串变量(线程安全的)
- StringBuilder ----> 字符串变量(非线程安全的)
String是字符串常量,对于这个叫法大家都可能有一个疑问,String字符串不是变量吗?怎么叫常量?
我看首先看一下官方的解释:
Strings are constant; their values cannot be changed after they are created. String buffers support mutable strings. Because String objects are immutable they can be shared
官方解释说:String 是一个常量,他的值在创建之后不能改变,字符串缓冲区支持修改,因为字符串对象是不可变的,所以支持共享。
举个例子:
String s = "abc"; s = s + 1; System.out.println(s);
2、String,StingBuffer,StringBuilder效率如何呢?
从高到底的顺序依次是:StringBuilder > StingBuffer > String
有上知道了String是字符串常量,所以他的效率自然而然是最低的。对于StringBuffer和StringBuilder它们属于变量,是可以改变的对象,每次对字符串的操作,实际上实在一个对象上操作,所以效率更高一些。StringBuffer是线程安全的,考虑到安全问题,相对他的性能会更低一点。由此知道了从效率的角度看,StringBuilder最高,其次是StringBuffer,最后是String字符串常量。
总结:
当多个线程使用字符串缓冲区时,使用StringBuffer保证正确的操作,如果是单线程的,建议使用StringBuiler效率更高一些。
当入行不深,只是自我总结一下,望路过大神多多指教,谢谢!
阅读全文
1 0
- JAVA之String,StringBuffer与StringBuilder三者之间的区别
- String 与StringBuffer、StringBuilder三者之间的区别
- Java之String与CharSequence、StringBuffer与StringBuilder之间区别
- Java--String、StringBuffer与StringBuilder之间区别
- String, StringBuffer, StringBuilder 三者之间的区别是什么?
- String,StringBuffer,StringBuilder三者之间的区别
- String&StringBuffer&StringBuilder三者之间的区别-经典解析
- String StringBuilder StringBuffer 三者之间的区别
- String,StringBuffer,StringBuilder 三者之间的区别是什么?
- String, StringBuffer, StringBuilder 三者之间的区别是什么?
- String、StringBuffer、StringBuilder三者之间的区别
- String,StringBuffer,StringBuilder三者之间的区别
- String 、StringBuffer、与StringBuilder之间的区别
- String StringBuffer与StringBuilder之间的区别
- String、StringBuffer与StringBuilder之间的区别
- String,StringBuffer与StringBuilder之间的区别
- String、StringBuffer与StringBuilder之间的区别
- String、StringBuffer与StringBuilder 之间的区别
- Spherical linear interpolation for Quaternions 2(四元数的球面插值计算,另一种方式)
- 【剑指offer】题11:数值的整数次方
- hgfhfdgfdgfdh
- Java提高篇——equals()与hashCode()方法详解
- 如何解决Django与Vue语法的冲突
- JAVA之String,StringBuffer与StringBuilder三者之间的区别
- 欢迎使用CSDN-markdown编辑器
- C++标准库中的数学函数。
- mysql Explain详解,优化sql的时候查看sql性能瓶颈
- C++宏定义详解
- 总结OnOK、OnCancel、OnDestroy函数之间的区别
- 利用JS-XLSX插件 用JS读取excel数据
- 初学者的Selenium自动化测试指南,基于Python(四)——常用鼠标事件
- ImageNet 2012 中文标签(Chinese Labels)