String StringBuffer StringBuilder比较
来源:互联网 发布:ssm项目管理系统源码 编辑:程序博客网 时间:2024/05/20 08:02
public static void main(String[] args) {
String str1 = new String("abc");
String str2 = new String("abc");
System.err.println(str1.equals(str2)); //true
StringBuffer sb1 = new StringBuffer("abc");
StringBuffer sb2 = new StringBuffer("abc");
System.err.println(sb1.equals(sb2)); //false
}
分析:String 重写equals方法后,比较的值大小,而StringBuffer没有重写equals方法,用的是Object的equals()方法,而原生Object的equals()比较的是引用
sb1,sb2是两个对象,分配两块内存空间,引用肯定不相等,所以是false;
再比较一下String 和StringBuffer其他的区别
String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String 是final类,即不能被继承.
StringBuffer:
是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();
note:不能通过付值符号对他进行付值.
sb = "welcome to here!";//error
对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer
中付值的时候可以通过它的append方法.
sb.append("hello");
StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。
1性能上StringBuffer快
String修改字符窜每次都要新建一个String对象,分配新的内存空间,实际上她是通过建立StringBuffer,再调用StringBuffer.append()方法,然后toString()转换成字符串,而且把原来的没用的内存空间回收,操作起来比StringBuffer麻烦
2线程安全
另外StringBuffer是线程安全的,在jdk1.5以后有StringBuilder,是线程不安全的,因此如果是单线程操作,建议用StringBuilder,因为效率更快
对于三者使用的总结: 1.如果要操作少量的数据用 = String
2.单线程操作字符串缓冲区 下操作大量数据 = StringBuilder
3.多线程操作字符串缓冲区 下操作大量数据 = StringBuffer
- String,StringBuffer,StringBuilder比较
- String StringBuffer StringBuilder比较
- String, StringBuffer, StringBuilder比较
- String,StringBuffer,StringBuilder比较
- String StringBuffer StringBuilder比较
- String,StringBuffer,StringBuilder比较
- String、StringBuilder、StringBuffer比较
- StringBuilder、StringBuffer、String比较
- String,StringBuffer,StringBuilder比较
- String,StringBuffer,StringBuilder性能比较
- String、StringBuilder、StringBuffer 用法比较
- Java String StringBuffer StringBuilder比较
- String、StringBuilder、StringBuffer 用法比较
- String、StringBuilder、StringBuffer 用法比较
- String的"+"-StringBuilder-StringBuffer比较
- String、StringBuffer、StringBuilder的比较
- String、StringBuilder、StringBuffer 用法比较
- String ,StringBuffer,StringBuilder精髓比较
- Table Decorations(规律题)
- 使用PostThreadMessage在Win32线程间传递消息
- 从右往左的布局( RTL layout )
- git - entry level note
- Remove Duplicates from Sorted List II
- String StringBuffer StringBuilder比较
- C++写的一个智能指针类
- Codeforces Round #273 (Div. 2)
- HDOJ 5067 Harry And Dig Machine
- MATLAB 编译并调用 C、C++程序
- C++中组件管理器的一个实现
- android绘制view的过程之一---------计算view大小(measure)(转)
- 如何在网站中添加音乐
- 进入公司第五、六个月