java之String,StringBuffer,StringBuilder,
2015-10-27 17:16
489 查看
java之String,StringBuffer,StringBuilder,
字符串是一系列连续的字符序列,java提供了String, 和StringBuffer两个类来封装字符串。并提供一系列方法来操作字符串对象。
String类是不可变类,即一旦一个String对象被创建以后,包含这个中的字符序列是不可变的,直至这个对象被销毁。
StringBuffer对象则代表一个字符序列可变的字符串,当一个、StringBuffer被创建后,可以通过其提供的方法改变对象的字符序列,一旦通过StringBuffer生成想要的字符串可以通过toString ()方法将其装换为一个String。StringBuffer在处理字符串时不生成新的对象,因此其优于String。 (StringBuffer是线程安全的)
StringBulider: 其与StringBuffer基本相似,不同的是StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高(因为在维护同步数据的正确性上肯定是要消耗资源的){StringBuffer 尽管在拼接字符串时效率高于StringBuffer 但是最后还是好转成String类型, 而在大字符串拼接的情况下StringBuffer的toString ()要比StringBuilder 的toString ()执行速度,所以线程安全的情况下还是用StringBuffer 。}StringBuilder通常用在用在单线程中,
String类是不可改变的,String的实例一旦生成就不会在改变
String str1 = “java ”;
str2 = str1 + “struts”;
str3 = str1+ spring ;
上面程序除了使用三个字符串直接量外,还会额外生成2个字符串直接量,-----“java”和“Struts”连接生成的“JavaStruts”接着Javastruts 与spring连接生成“javaStrutsSpring”程序中的str依次指向不同的字符串对象,因为String是不可改变的所以会额外产生许多变量,这会诊增减系统的开销
StringBuffer与StringBulider以就可以避免这个问题。
字符串是一系列连续的字符序列,java提供了String, 和StringBuffer两个类来封装字符串。并提供一系列方法来操作字符串对象。
String类是不可变类,即一旦一个String对象被创建以后,包含这个中的字符序列是不可变的,直至这个对象被销毁。
StringBuffer对象则代表一个字符序列可变的字符串,当一个、StringBuffer被创建后,可以通过其提供的方法改变对象的字符序列,一旦通过StringBuffer生成想要的字符串可以通过toString ()方法将其装换为一个String。StringBuffer在处理字符串时不生成新的对象,因此其优于String。 (StringBuffer是线程安全的)
StringBulider: 其与StringBuffer基本相似,不同的是StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高(因为在维护同步数据的正确性上肯定是要消耗资源的){StringBuffer 尽管在拼接字符串时效率高于StringBuffer 但是最后还是好转成String类型, 而在大字符串拼接的情况下StringBuffer的toString ()要比StringBuilder 的toString ()执行速度,所以线程安全的情况下还是用StringBuffer 。}StringBuilder通常用在用在单线程中,
String类是不可改变的,String的实例一旦生成就不会在改变
String str1 = “java ”;
str2 = str1 + “struts”;
str3 = str1+ spring ;
上面程序除了使用三个字符串直接量外,还会额外生成2个字符串直接量,-----“java”和“Struts”连接生成的“JavaStruts”接着Javastruts 与spring连接生成“javaStrutsSpring”程序中的str依次指向不同的字符串对象,因为String是不可改变的所以会额外产生许多变量,这会诊增减系统的开销
StringBuffer与StringBulider以就可以避免这个问题。
相关文章推荐
- UIScrollView的妙用---textfield编辑不被键盘遮盖(方便简单好实现@.@)
- Codeforces Round #327 (Div. 1) B题: Chip 'n Dale Rescue Rangers [数学题]
- iOS开发UI篇—Quartz2D使用(绘图路径)
- 【adb】adb root报错“adbd cannot run as root in production builds”
- AndroidUI的组成部分GridView
- iOS开发UI篇—Quartz2D简单使用(三)
- DuiVision开发教程(15)-DUI文本控制基础类
- 【NGUI】监听按钮除OnClick外其他事件的方法,附简易改编的UIButton类
- 斯坦福大学公开课 iOS应用开发教程学习笔记(第七课)UIToolbar、iPad 和iPhone的通用程序
- Uiautomator 快速调试
- deque双端队列&&UVa210 Concurrency Simulator(并行程序模拟)的理解与解析
- Uicc之ICCFileHandler(转)
- iOS开发UI篇—Quartz2D使用(图片剪切)
- Carrier frequency 和 EARFCN的关系
- 032.NSValue NSNumber 包装类
- MQTT学习笔记-让Mosquitto支持Websocket
- 虚幻4 build.cs文件里面的每个字符串List的意义
- 浅谈NGUI的NGUITools类
- 【mongdb报错】Failed global initialization: BadValue Invalid or no user locale set.
- MQTT学习笔记-Mosquitto的安装与启动