(1)基本原则:如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。 (2)不要使用String类的"+"来进行频繁的拼接,因为那样的性能极差的,应该使用StringBuffer或StringBuilder类,这在Java的优化上是一条比较重要的原则。例如: Stringresult
publicstaticvoidmain(String[] args){Stringa="hello";Stringb="abc";//1.先创建一个 StringBuilder sb = StringBuilder()//2.执行 sb.append("hello");//3. sb.append("abc");//4. Str c =sb.toString();Stringc=a + b; } String c1 = "ab" + "cd";常量相加,看的是池 String c1 = a...
而StringBuffer和StringBuilder这两个的最大区别在于第一个是线程安全的,第二个是线程不安全的,同样的StringBuffer在确保线程安全的过程中,牺牲了一定的性能,因此StringBuilder速度是最快的。而两者与String相比其修改过程中是直接作用于指定的堆内存中,通常不会再进行开辟新的堆内存,因此相比String效率更高。因此我们可以...
StringBuffer 与 StringBuilder 中的方法和功能完全是等价的,只是StringBuffer 中的方法大都采用了synchronized 关键字进行修饰,因此是线程安全的,而 StringBuilder 没有这个修饰,可以被认为是非线程安全的。 String、StringBuilder、StringBuffer三者的执行效率:StringBuilder > StringBuffer > String 当然这个是相对的,不一定在...
Java 提供了三种常用的字符串处理工具:String、StringBuffer 和 StringBuilder。每一种都有适用场景,那么该如何选择呢? 1. String:不变的力量 我们先来看看 String。String 是不可变的,也就是说,每次对 String 进行修改,都会生成一个新的对象。这是 String 设计的一大特色,也正因如此,它在多线程环境下非常安全,...
StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。 由于StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。 实例 publicclassRunoobTest{publicstaticvoidmain(String[]args){StringBuildersb=newStringBu...
StringBuilder与StringBuffer大致相同,但StringBuilder的方法没有同步,不是线程安全的。 1)String常用方法 使用示例:Java中String、StringBuffer、StringBuilder的区别以及使用场景总结-CJavaPy 2)StringBuffer常用方法 使用示例: public class Main { public static void main(String[] args) { ...
StringBuffer 快一些。综上所述,String 类型一般适用于字符串不经常变化的场景;StringBuilder 和 StringBuffer 适用于字符串内容需要经常修改或拼接操作的场景。在单线程环境下,由于 StringBuilder 的效率更高,因此优先选择使用 StringBuilder;而在多线程环境下,为了保证数据同步性,应该选择使用 StringBuffer。
1)String最慢的原因: String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。以下面一段代码为例: String str="abc"; System.out.println(str); str=str+"de"; ...
今天就给大家分析下String、StringBuffer和StringBuilder的区别。先说说String和其他两个的区别吧。刷面试题的朋友肯定能说出来String声明的对象是不可变对象,其他两个类声明的对象是可变的对象。那String怎么就是不可变的了呢?让我们来看看String类的源码吧。可以看到String类是通过内部的一个char数组实现的。类和类内...