首页 > 开发 > Java > 正文

浅谈java中String与StringBuffer的不同

2024-07-13 09:56:03
字体:
来源:转载
供稿:网友
String在栈中,StringBuffer在堆中!所以String是不可变的,数据是共享的。StringBuffer都是独占的,是可变的(因为每次都是创建新的对象!)
 

String 不是简单类型,而是一个类,它被用来表示字符序列。字符本身符合 Unicode 标准,其初始化方式有两种。

如:String greeting=“Good Morning! /n”;
String greeting=new String(=“Good Morning! /n”);
String的特点是一旦赋值,便不能更改其指向的字符对象,如果更改,则会指向一个新的字符对象 。

StringBuffer是一个具有对象引用传递特点的字符串对象

StringBuffer对象可以调用其方法动态的进行增加、插入、修改和删除操作,且不用像数组那样事先指定大小,从而实现多次插入字符,一次整体取出的效果,因而操作字符串非常灵活方便。
一旦通过StringBuffer生成最终想要的字符串,就可调用它的toString方法将其转换为一个String对象

关于这两个类在字符串处理中的位置不言而喻,那么他们到底有什么优缺点,到底什么时候该用谁呢?下面我们从以下几点说明一下 

1.二者在执行速度方面的比较:StringBuffer  >  String 

2.String <StringBuffer的原因 
    String:字符串常量 
    StringBuffer:字符创变量 
    从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问  ,比如这段代码: 
 

  1. String s = "abcd";   
  2. s = s+1;   
  3. System.out.print(s);// result : abcd1   
?
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表