源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java_String和StringBuffer区别分析

  • 时间:2021-12-02 07:14 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java_String和StringBuffer区别分析
而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的时候你就可以使用StringBuffer。典型地,你可以使用StringBuffers来动态构造字符数据。 在java中有3个类来负责字符的操作。 1.Character 是进行单个字符操作的, 2.String 对一串字符进行操作。不可变类。 3.StringBuffer 也是对一串字符进行操作,但是可变类。 String: 是对象不是原始类型. 为不可变对象,一旦被创建,就不能修改它的值. 对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去. String 是final类,即不能被继承. StringBuffer: 是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象 它只能通过构造函数来建立, StringBuffer sb = new StringBuffer(); note:不能通过付值符号对他进行付值. sb = "welcome to here!";//error 对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer 中付值的时候可以通过它的append方法. sb.append("hello"); 以上为摘抄,网上常见的,以下为自己添加的见解: 地址不可更改,长度和内容可改。append()方法是追加,超过预留内存时,内存翻倍。 效率比较:StringBuffer比String高。因为StringBuffer有预留空间一直追加,只是对一个对象进行操作。而String是不能被修改的,只能重复的去创建对象来实现修改。——如果频繁的对字符串进行追加、替换、修改、插入、删除操作,最好使用StringBuffer。如果必须用String可以使用StringBuffer调用toString()来转换成String即可。
[u]复制代码[/u] 代码如下:
public static void main(String[] args) {          String a="";          long begin=System.currentTimeMillis();          for (int i = 0; i <10000; i++) {              a+=i;          }          long end=System.currentTimeMillis();          System.out.println("String运行时间:"+(end-begin));          System.out.println("-----------------");          StringBuffer b=new StringBuffer();          long begin2=System.currentTimeMillis();          for (int i = 0; i <10000; i++) {              b.append(i);          }          long end2=System.currentTimeMillis();          System.out.println("StringBuffer运行时间:"+(end2-begin2));      }
我的机子比较垃圾,执行下来结果是 String运行时间:164593 ----------------- StringBuffer运行时间:31 而且String有contains方法,而StringBuffer没有。contains是包含的意思,这里可以在回忆下contains方法
[u]复制代码[/u] 代码如下:
 public static void main(String[] args) {          String a="abc";          boolean str=a.contains("b");          System.out.println(str);      }
执行结果为 true
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部