Java中String,StringBuffer和StringB

2020-04-01  本文已影响0人  年迈的代码机器

String 和StringBuffer的区别 我所知道的更多的展现在字符串拼接方面,如下例子
如果数据数量足够大,他们的区别是非常明显的。

下面是String字符串变量

String a=“pine”;           //定义了a变量
String b=“apple”;        // 定义了b变量
String c=“pine”+“apple”;   // 一种将 a和b拼接的方法
String d=a+b;               //  第二种拼接方法

下面是StringBuffer字符串变量

StringBuffer sb= new StringBuilder(“pine”).append(“ apple”); 
//这是一个拼接语句,在pine后拼接apple 而insert(位置,内容)方法可以指定拼接的位置

下面就上述例子来说一说String 和StringBuffer的区别

首先

String是不可变的对象,每次使用时都会new一个新的String对象。
而StringBuffer是一个可变的安全的字符序列,他有一个缓冲区,可以通过调用方法来修改该缓冲区的内容和长度。

在速度方面

变量c 也就是例子的第一种拼接方法 在JVM机制中就相当于没有拼接,即

String c= “pine apple”

而变量d也就是第二种拼接方法则是String的一种拼接方法。

String d=a+b;               //  第二种拼接方法

此时的d就是"pine apple",此时的数据量很大的话,速度上会比StringBuffer的拼接慢上很多了。

关于StringBuilder

此类提供一个与 StringBuffer 兼容的 API,该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 要快。两者的方法基本相同。

上一篇下一篇

猜你喜欢

热点阅读