String,StringBuffer,StringBuilder的一些区别
来源:互联网 发布:阿尔弗雷德大学 知乎 编辑:程序博客网 时间:2024/06/05 00:48
JAVA中String,StringBuffer,StringBuilder是有一些区别的;String主要应用在简单地保存一个字符串,逐步地遍历字符串,但其执行删除,修改,插入的操作时就有些麻烦;此时我们请出后两者,如StringBuffer,StringBuilder;说起后两者StringBuffer,StringBuilder主要在删除,修改,插入操作方面比String强,StringBuffer主要可以支持线程安全,可以同步,应用在多线程,游刃有余。而StringBuilder不支持线程安全,因而不可以同步,但它比StringBuffer速度快,它们刚好与String在性能上各有千秋。JDK 文档均推荐使用StringBuilder,但我本人推荐使用StringBuffer,因为有了它,操作字符串就更加方便,更重要的是支持同步机制,因此牺牲一点内存空间也是值得的。
另外还有,String,StringBuffer,StringBuilder这三者还有一些区别就是这三者均以值参数形式传递,只不过在传递过程中,Sting仍然以值传递,调用方法后其值不会发生变化,而StringBuffer,StringBuilder耍了点诡计,以值对象传递,调用方法后其值会发生变化。这点符合JAVA的相关设计规范。以下以代码范例说明这一点。
public class Test {
public static void println(String str,StringBuffer strBuffer,StringBuilder strBuilder)
{
str="以String方式输出Apple";
strBuffer.append("以StringBuffer方式输出Apple");
strBuilder.append("以StringBuilder方式输出Apple");
}
public static void main(String[] args)
{
String str="Apple";
StringBuffer sbf=new StringBuffer();
sbf.append("Apple");
StringBuilder sbd=new StringBuilder();
sbd.append("Apple");
System.out.println("调用前str="+str+",sbf="+sbf+",sbd="+sbd);
println(str,sbf,sbd);
System.out.println("调用后str="+str+",sbf="+sbf+",sbd="+sbd);
}
}
上述代码运行结果:
调用前str=Apple,sbf=Apple,sbd=Apple
调用后str=Apple,sbf=Apple以StringBuffer方式输出Apple,sbd=Apple以StringBuilder方式输出Apple
- 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的区别
- String, StringBuffer, StringBuilder的区别
- String StringBuffer StringBuilder的区别
- string、stringbuffer、stringbuilder的区别
- String、StringBuffer 、StringBuilder 的区别
- String,StringBuffer,StringBuilder的区别
- String ,StringBuffer,StringBuilder的区别
- String,StringBuffer,StringBuilder的区别
- String StringBuffer StringBuilder的区别
- java设计模式--事件监听器模式和观察者模式
- linuxcast笔记:linux基本操作
- ACM位运算技巧
- 运行android程序,出错Invalid layout of java.lang.String at value
- uva1392 - DNA Regions 维护递减数列 二分
- String,StringBuffer,StringBuilder的一些区别
- XCode5取消ARC和StoryBoard
- Makefile origin 函数
- 框架
- java设计模式--事件监听器模式和观察者模式 .
- uva - 270 - Lining Up(枚举、排序)
- 九度oj 题目1019:简单计算器
- oracle调度程序的使用
- 百度地图 JNI ERROR (app bug): accessed stale local reference 错误解决方法