Java-String与StringBuffer

来源:互联网 发布:做吉他谱的软件 编辑:程序博客网 时间:2024/06/05 11:53

String

string 一赋值就不能改变,如果被重新赋值会重新实例化另一个对象
例:

String str="water";  StringBuffer sb = new StringBuffer("bread");public static void main(String[] args){    changeStr(str);    changeSb(sb);    System.out.println(str);    System.out.println(sb.toString());}public void changeStr(String s){    s+="no";}public void changeSb(StringBuffer sb){    sb.append("yes");}  

输出结果

waterbreadyes

String

因为用String类创建的是不可变对象,一旦赋值了就不能改的,即使改了,也是重新创建一个对象,在把新的值保存进去

String是final类,不能被继承。

String str = new String("go ");str += "ahead!";  

这里的处理步骤实际是建立一个StringBuffer,然后调用append(),最后将StringBuffer toString()。

  • 所以String的连接效率比StringBuffer低,多了一些操作
  • 因为String类创建的对象不可变,每次的操作,String都会建立新的对象,这样原来的对象就没用了,就要被垃圾回收,会影响性能

StringBuffer

  • 用StringBuffer类创建的对象是可变对象
  • 只能通过构造函数来建立,不能通过赋值符号进行赋值
  • 对象被建立之后,会在内存里面分配内存空间,并初始保存一个null
  • 赋值或插入字符串时,可用append()方法
1 0
原创粉丝点击