Java中string和stringBuffer的区别

原创 2016年08月28日 17:10:11

引言:

    最近软考在看J2SE视频,在讲常用类的时候有提到string和stringbuffer的区别,之前看过一遍没什么印象,又一遍的印象还比较深刻,能够大概理解讲的是什么。


区别:

   他们两个就类似于“常量”和“变量”;

  

  String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值;对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去;String 是final类,即不能被继承。

 

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

    sb.append("hello");


StringBuffer类的常用方法:

   

 1、append方法

    public StringBuffer append(boolean b)
    该方法的作用是追加内容到当前StringBuffer对象的末尾,类似于字符串的连接。调用该方法以后,StringBuffer对象的内容也发生改变,
 例如:
     StringBuffer sb = new StringBuffer(“abc”);
     sb.append(true);
  则对象sb的值将变成”abctrue”。

2、deleteCharAt方法

    public StringBuffer deleteCharAt(int index)
  该方法的作用是删除指定位置的字符,然后将剩余的内容形成新的字符串。

 例如:
    StringBuffer sb = new StringBuffer(“Test”);
     sb. deleteCharAt(1);
 该代码的作用删除字符串对象sb中索引值为1的字符,也就是删除第二个字符,剩余的内容组成一个新的字符串。所以对象sb的值变为”Tst”。

还存在一个功能类似的delete方法:
public StringBuffer delete(int start,int end)
该方法的作用是删除指定区间以内的所有字符,包含start,不包含end索引值的区间。

例如:
 StringBuffer sb = new StringBuffer(“TestString”);
 sb. delete (1,4);
该代码的作用是删除索引值1(包括)到索引值4(不包括)之间的所有字符,剩余的字符形成新的字符串。则对象sb的值是”TString”。

3、insert方法

   public StringBuffer insert(int offset, String s)
   该方法的作用是在StringBuffer对象中插入内容,然后形成新的字符串。

例如:
   StringBuffer sb = new StringBuffer(“TestString”);
   sb.insert(4,“false”);
该示例代码的作用是在对象sb的索引值4的位置插入字符串false,形成新的字符串,则执行以后对象sb的值是”TestfalseString”。

4、reverse方法

 public StringBuffer reverse()
该方法的作用是将StringBuffer对象中的内容反转,然后形成新的字符串。

例如:
StringBuffer sb = new StringBuffer(“abc”);
sb.reverse();
经过反转以后,对象sb中的内容将变为”cba”。

5、setCharAt方法

public void setCharAt(int index, char ch)
该方法的作用是修改对象中索引值为index位置的字符为新的字符ch。

例如:
StringBuffer sb = new StringBuffer(“abc”);
sb.setCharAt(1,’D’);
则对象sb的值将变成”aDc”。

6、trimToSize方法

public void trimToSize()
该方法的作用是将StringBuffer对象的中存储空间缩小到和字符串长度一样的长度,减少空间的浪费。

7、构造方法:

StringBuffer s0=new StringBuffer();分配了长16字节的字符缓冲区
StringBuffer s1=new StringBuffer(512);分配了512字节的字符缓冲区

8、获取字符串的长度: length()

  StringBuffer s = new StringBuffer("www");
  int i=s.length();
  m.返回字符串的一部分值
  substring(int start) //返回从start下标开始以后的字符串
  substring(int start,int end) //返回从start到 end-1字符串

9.替换字符串

  replace(int start,int end,String str)
  s.replace(0,1,"qqq");

10.转换为不变字符串:toString()。

总结:

学习之后不总结跟没学习差不多,第一遍学完之后就是那样,现在总结一样,感觉收获挺多的,这就是老师所说的“颗粒归仓”吧。


  





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Java之String、StringBuilder、StringBuffer的区别

String : 字符串常量,它们的值在创建之后不能更改。代表字符串,Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。   String的值是不可变的,这就导致每次对...
  • T_P_F
  • T_P_F
  • 2017-01-12 14:59
  • 123

string与stringbuffer的区别

  • 2012-08-12 22:16
  • 18KB
  • 下载

string和StringBuffer的区别

  • 2012-01-05 09:48
  • 15KB
  • 下载

java中String、StringBuffer、StringBuilder的区别

java中String、StringBuffer、StringBuilder是编程中经常使用的字符串类,他们之间的区别也是经常在面试中会问到的问题。现在总结一下,看看他们的不同与相同。 1.可变与不...

String和StringBuffer的区别

JAVA中String与StringBuffer的区别

String和StringBuffer的区别,网上资料可以说是数不胜数,但是看到这篇文章,感觉里面做的小例子很有代表性,所以转一下,并自己做了一点总结。 在java中有3个类来负责字...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)