java_String和StringBuffer区别分析

赵钱孙周不说理

赵钱孙周不说理

2016-02-19 10:34

下面是个超简单的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即可。

代码如下:

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

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

而且String有contains方法,而StringBuffer没有。contains是包含的意思,这里可以在回忆下contains方法
代码如下:

 public static void main(String[] args) {
         String a="abc";
         boolean str=a.contains("b");
         System.out.println(str);
     }

执行结果为

true

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)
展开更多 50%)
分享

猜你喜欢

java_String和StringBuffer区别分析

编程语言 网络编程
java_String和StringBuffer区别分析

Java之String、StringBuffer、StringBuilder的区别分析

编程语言 网络编程
Java之String、StringBuffer、StringBuilder的区别分析

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

全面解释java中StringBuilder、StringBuffer、String类之间的关系

编程语言 网络编程
全面解释java中StringBuilder、StringBuffer、String类之间的关系

java中String与StringBuilder的区别

编程语言 网络编程
java中String与StringBuilder的区别

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Java overload和override的区别分析

编程语言 网络编程
Java overload和override的区别分析

java中instanceof和getClass()的区别分析

编程语言 网络编程
java中instanceof和getClass()的区别分析

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

电脑也能“摇一摇”交友?

电脑也能“摇一摇”交友?

被剪切的文件夹要怎么恢复

被剪切的文件夹要怎么恢复
下拉加载更多内容 ↓