使用StringBuffer和StringBuilder代替String的+运算
以下例子可以说明代替的理由
long curTime = System.currentTimeMillis();
String abc = "";
for (int i = 0; i < 10000; i ++){
abc += i + ",";
}
System.out.println("Normal : " + (System.currentTimeMillis() - curTime));
curTime = System.currentTimeMillis();
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < 10000; i ++){
buffer.append(i).append(",");
}
abc = buffer.toString();
System.out.println("StringBuffer : " + (System.currentTimeMillis() - curTime));
curTime = System.currentTimeMillis();
StringBuilder builder = new StringBuilder();
for (int i = 0; i < 10000; i ++){
builder.append(i).append(",");
}
abc = builder.toString();
System.out.println("StringBuilder : " + (System.currentTimeMillis() - curTime));
----输出
Normal : 610
StringBuffer : 0
StringBuilder : 0
经过多次运算StringBuilder和StringBuffer都在15以下
分享到:
相关推荐
这是因为每次`+`运算都会创建新的`String`对象,而`StringBuilder`则可以在原有对象基础上进行追加,避免了不必要的内存分配和垃圾回收。 总结来说,`String+String`操作在编译器层面会被优化,而`String+char`虽然...
Java String 和StringBuffer 的详解及区别 Java String 和StringBuffer 是 Java 语言中两个基本的字符串类,它们都是用于存储和操作字符串的,但是它们之间有着很大的区别。 String 类 String 类表示内容不可改变...
Java为了优化内存使用和提高性能,将所有的字符串文字(字符串常量)存储在字符串文字池中。在编译期间,所有的字符串文字会被放入这个池中。如果多个地方使用相同的字符串文字,它们在池中只会占用一个位置,避免...
Java 提供了 String、StringBuffer 和 StringBuilder 三种字符串类型。String 是不可变类,StringBuffer 和 StringBuilder 是可变类。 七、Java 中的goto goto 是 Java 中的保留字,暂时还不是 Java 的关键字。
3. **String、StringBuffer 和 StringBuilder** - String 对象是不可变的,每次修改都会创建新的对象;StringBuffer 和 StringBuilder 提供了可变字符串,适合在多线程或频繁修改字符串时使用。StringBuilder 是非...
在Java编程语言中,`String`类是使用最频繁的类之一,主要用来表示和操作字符串。`String`对象是不可变的,这意味着一旦创建,它们的值就不能更改。本篇文章将深入探讨`String`的一般用法和处理,包括其通用方法、...
2. String 和 StringBuffer、StringBuilder 的区别:String 定义的字符串不可改变,StringBuffer 和 StringBuilder 可以在原对象基础上进行操作,改变对象内容,StringBuffer 是线程安全的,StringBuilder 是线程不...
String、StringBuffer 和 StringBuilder 都用于处理字符串,其中 String 适合不可变的字符串,而 StringBuffer 和 StringBuilder 在多线程和频繁修改字符串时更有效率,因为它们是线程安全和非线程安全的,分别适用...
- StringBuffer 和 StringBuilder 在字符串可变场景中使用,StringBuilder 更高效但非线程安全,StringBuffer 在多线程环境下推荐使用。 2. static:关键字用于声明静态成员,静态成员属于类而不属于类的实例,...
- **字符串连接**:使用`+`运算符或`StringBuilder`/`StringBuffer`类。 - **字符串比较**:使用`equals()`方法来比较字符串的内容是否相等,而不是使用`==`运算符,因为后者比较的是对象引用。 #### 总结 掌握...
为了解决这个问题,可以使用StringBuilder或StringBuffer类来进行拼接。 关于“工具”标签,这里可能指的是Java开发工具,如Eclipse、IntelliJ IDEA等,它们提供了便捷的代码编辑、调试和版本控制功能,帮助开发者...
4. StringBuffer和StringBuilder:StringBuffer和StringBuilder是用于字符序列操作的两个类,它们提供了可变的字符序列。 - StringBuffer是线程安全的,因此在多线程环境下使用时性能较低,适合在多线程程序中使用...
要正确拼接字符并输出字符串,应该使用`String`类提供的`concat()`方法或使用`StringBuilder`或`StringBuffer`类进行字符串的构建。例如: ```java String s = a + "" + b + "" + c + "" + d + "" + e + "" + f; ...
在Java中,字符串主要由两种类来表示:`String` 和 `StringBuffer`(在多线程环境下通常使用`StringBuilder`)。本文将深入探讨Java字符串的语法和应用。 首先,`String` 类是不可变的,这意味着一旦创建了字符串...
另外,StringBuilder或StringBuffer类在需要频繁修改字符串内容时更为高效。对于字符串格式化,可以使用Formatter类或者直接使用String类的方法,如format()。在处理字符串时,注意字符编码的问题,确保在不同平台和...
String类和StringBuffer(Java 5之后推荐使用StringBuilder)是处理字符串的两大工具。String是不可变的,适合不可变的字符串,而StringBuffer/StringBuilder则适用于频繁修改的字符串。了解它们的性能差异并在合适...
首先,StringBuilder和StringBuffer都是通过一个char数组存储字符串的,不同的是String类里的char数组是final修饰的,是不可变的,而StringBuilder和StringBuffer的char数组是可变的。 在多线程环境下,使用...
StringBuffer、StringBuilder和String都是Java中的字符串处理类,但它们有不同的特点: * String:不可变字符串,所有操作都会生成新的字符串 * StringBuffer:可变字符串,多线程安全,同步锁机制 * StringBuilder...
综上所述,“Java面试葵花宝典”涵盖了Java面试中的基础知识点,包括但不限于 `String` 类型的理解、`Integer` 类的使用、各种Wrapper类的功能及其方法,以及 `StringBuilder` 和 `StringBuffer` 的区别和使用场景。...