黑马程序员技术交流社区

标题: String和StringBuffer的区别?? [打印本页]

作者: 747437484    时间: 2013-12-12 22:35
标题: String和StringBuffer的区别??
String和StringBuffer的区别??
作者: 末末    时间: 2013-12-12 22:48
String一初始化就不会改变了,而StringBuffer可以改变
  1. StringBuffer s=new StringBuffer();
  2.            s.append("one");
  3.            String str="abc";
  4.            str="efd";
复制代码

这里str指向了另一个对象,但是“abc”还存在
而s还是同一个对象

作者: Kyle    时间: 2013-12-12 22:50
本帖最后由 Kyle 于 2013-12-12 23:29 编辑

    StringBuffer是可变字符序列。
    String是不可变的,一旦被初始化,就不能改变。


作者: 小斥候    时间: 2013-12-12 22:54
末末 发表于 2013-12-12 22:48
String一初始化就不会改变了,而StringBuffer可以改变
这里str指向了另一个对象,但是“abc”还存在
而s还 ...

后面的String一般叫做引用
作者: 郭涛    时间: 2013-12-12 22:57
String 类代表字符串。
Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
字符串是常量;它们的值在创建之后不能更改。
字符串缓冲区(StringBuffer)支持可变的字符串。
因为 String 对象是不可变的,所以可以共享。
StringBuffer类是可变字符序列,是字符串缓冲区。
1.字符串(String)的组成原理就是通过该类实现的。
2.StringBuffer可以对字符串内容进行增删
3.StringBuffer:字符串缓冲区,用于存储数据,所以它也被称之为容器
4.StringBuffer是可变长度的
特点:
1.可以添加基本数据和引用数据。添加数据完毕,其实底层都是将其转成字符串进行使用,通过toString方法转成字符串
2.StringBuffer容器和数组不一样,数组是固定长度,而且只能添加同一个类型
而StringBuffer长度是可变的,可以添加不同类型。类型一致的数据,可以使用数组,也可以使用StringBuffer
3.数组添加元素,可以保证数据类型不变。而StringBuffer添加数据以后,全变成字符串。
4.StringBuffer可以对字符串进行修改。

作者: icyyaww    时间: 2013-12-12 23:07
1.String 对一串字符进行操作。不可变类。
2.StringBuffer 也是对一串字符进行操作,但是可变类。
String:
是对象不是原始类型.
为不可变对象,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
String 是final类,即不能被继承.

StringBuffer:
是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象
它只能通过构造函数来建立,
StringBuffer sb = new StringBuffer();
note:不能通过付值符号对他进行付值.
sb = "welcome to here!";//error
对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer
中付值的时候可以通过它的append方法.
sb.append("hello");

作者: 末末    时间: 2013-12-12 23:29
小斥候 发表于 2013-12-12 22:54
后面的String一般叫做引用

谢谢改正
作者: 史超    时间: 2013-12-13 17:57
String就是一个固定长度的字符串,不能增加也不能减少。但是将字符串放到StringBuffer之中,就好比是一个蓄水池,可以将字符串转化为可变字符串,这样更贴近实际情况,以便做判断,这样会更灵活




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2