string与stringbuffer常见于java面试中,以下为string与strinbuffer性能对比示例的java代码 以下为执行5000次的字符串边接。
package com.buyli.interview.baseinfo;
/**
* @Copyright @ 2012
* All right reserved
* @version 创建时间:Created on 2012-11-21
* @author 作者:Create by www.360buyli.com
* @Email: 360buyli@gmail.com
* @description 用于测试string与StringBuffer的性能差异
*/
public class StringInterview {
public static void main(String[] args) {
String result="";
StringBuffer sbResult=new StringBuffer();
int count=5000;//代表连接字符串的次数
long startTime=System.currentTimeMillis();
for (int i = 0; i <count; i++) {
result=result+"a";
}
System.out.println("string时间差:"+(System.currentTimeMillis()-startTime));
startTime=System.currentTimeMillis();
for (int i = 0; i <count; i++) {
sbResult.append("a");
}
System.out.println("stringbuffer时间差:"+(System.currentTimeMillis()-startTime));
}
}
示例结果:
string时间差:32
stringbuffer时间差:0
分享到:
相关推荐
### String与StringBuffer的区别 在Java编程语言中,`String`和`StringBuffer`是非常重要的两个类,它们分别用于处理不可变(immutable)和可变(mutable)字符串。理解这两个类之间的区别对于有效地管理和操作字符...
四、String、StringBuffer 和 StringBuilder 的比较 * String 是不可变的字符序列,而 StringBuffer 和 StringBuilder 是可变的字符序列。 * StringBuffer 是线程安全的,而 StringBuilder 不是线程安全的。 * 在...
总结来说,理解Java中String、StringBuffer和StringBuilder的区别,并合理选择使用哪个类,对于编写高性能Java程序是至关重要的。在进行性能敏感的操作时,选择合适的字符串处理类可以大幅提升程序的执行效率。同时...
3. **性能对比**: - 在单线程环境下,由于`StringBuilder`没有线程同步的开销,所以它的性能优于`StringBuffer`。 - 在多线程环境下,`StringBuffer`的线程安全特性使其成为更好的选择,虽然牺牲了一些性能,但...
为了解决这个问题,Java提供了`String.intern()`方法,允许程序强制检查字符串池,将通过`new`关键字创建的字符串对象与池中的字符串进行比较。如果池中已有相同的字符串,`intern()`方法会返回池中的引用,否则会将...
#### 性能对比示例 下面通过一个具体的性能测试示例来进一步说明 `String` 和 `StringBuffer` 的性能差异: ```java public class PerformanceTest { public static void main(String[] args) { final int times...
3. **性能对比**: 当涉及到字符串连接操作时,尤其是在循环中,`StringBuffer`(或`StringBuilder`)通常比`String`更高效。这是因为`String`每次连接操作都会创建新的`String`对象,而`StringBuffer`则是在原有的...
在Java编程语言中,`String`、`StringBuffer`和`StringBuilder`是处理字符串的三个重要类,它们各自有特定的使用场景和优缺点。理解它们的差异对于编写高效的代码至关重要。 **String类** `String`是不可变的类,...
性能对比:当字符串需要多次修改时,`StringBuffer`或`StringBuilder`比`String`更优,因为`String`每次修改都会创建新对象,消耗更多内存和时间。尤其是在循环中拼接字符串,`StringBuffer`或`StringBuilder`的性能...
性能对比 在一般情况下,我们推荐使用 StringBuffer,特别是在字符串对象经常改变的情况下。但是,在某些特别情况下,String 对象的字符串拼接其实是被 JVM 解释成了 StringBuffer 对象的拼接,所以这些时候 String...
理解`String`、`StringBuilder`和`StringBuffer`的特性及其方法,可以帮助开发者在Java编程中更有效地处理字符串,从而优化代码性能和内存管理。在单线程环境中,`StringBuilder`通常更高效;而在多线程环境下,为了...
### 性能对比 在单线程环境下,频繁修改字符串时,使用`StringBuilder`(`StringBuffer`的一个非同步版本)通常比`StringBuffer`更加高效,因为去除了不必要的同步开销。但在多线程环境下,为了保证数据的一致性和...
在Java编程语言中,`String`和`StringBuffer`都是用来表示和操作字符串的重要类,但它们在性能和使用场景上有显著的区别。 首先,`String`类是不可变的,这意味着一旦创建了一个`String`对象,它的内容就不能改变。...
根据给定的信息,本文将对`String`与`StringBuffer`在Java中的使用进行详细的解析与对比,并结合实例深入分析二者的异同及其适用场景。 ### `String` 和 `StringBuffer` 的基本概念 #### `String` 在Java中,`...
### StringBuffer与String的区别详解 #### 一、概念与特性 **String** 是 Java 中一个不可变的类,代表了字符序列。一旦一个 String 对象被创建后,其内容就不能被改变。这使得 String 类非常适合用来表示常量或者...
### String总概况及其特性并与StringBuffer的区别详解 在Java编程语言中,`String`与`StringBuffer`是非常重要的数据类型,被广泛应用于处理文本数据。本文将深入探讨这两个类的基本特性以及它们之间的区别。 ####...
- **可变性与效率**:StringBuilder与StringBuffer类似,也是可变的,允许直接修改对象。但是,StringBuilder没有实现线程安全,这意味着它不包含同步方法,因此在单线程环境中,StringBuilder通常比StringBuffer更...
6. **StringBuffer/StringBuilder**:在多线程环境中,如果需要频繁修改字符串,应使用`StringBuffer`,而在单线程环境中,`StringBuilder`是更好的选择,因为它们支持可变操作,性能优于`String`。 7. **intern()*...