`

StringBuilder 详解

 
阅读更多

Java中java.lang.StringBuilder类与与String类的功能类似,它们有什么区别呢?
String 对象是不可改变的,每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间,如果是需要对字符串执行重复修改,就要不断的创建新的 String 对象。如果要修改字符串而不创建新的对象,则可以使用StringBuilder 类。如:在一个循环中将许多字符串连接在一起时,使用 StringBuilder 类可以提升性能。

 

一个String对象的长度是固定 的,不能更改其内容。当你用“+”连接两个字符串从而创建新的字符串时,你其实创建了一个新的String对象。如果频繁的这样子操作,就会产生大量的垃圾并且效率低。

这种情况下可以考虑使用StringBuilder。

 

/*
 * @author    junife
 * @date      2013-02-19
 * @fuction   StringBuilder 用法
 */
public class StringBuilderTest 
{
	public static void main(String[] args) 
	{

		String text = "testContent";
		long beginTime = System.currentTimeMillis();
		for (int i = 0; i < 10000; i++) 
		{
			text = text + i;
		}
		long endTime = System.currentTimeMillis();
		System.out.println("使用String操作符(+)的执行时间:" + (endTime - beginTime));

		
		StringBuilder stringBuilder = new StringBuilder();
		beginTime = System.currentTimeMillis();
		for (int i = 0; i < 10000; i++) 
		{
			stringBuilder.append(i);
		}
		endTime = System.currentTimeMillis();
		System.out.println("使用StringBuilder的执行时间:" + (endTime - beginTime));
	}
}
/*
 * 执行结果:
 * 使用String操作符(+)的执行时间:301
 * 使用  StringBuilder 的执行时间:1
 */

 

 输出的执行时间肯定是第一次大,i值越大差距越大。
通过用一个重载的构造函数方法初始化变量,可以创建 StringBuilder 类的实例,如:
StringBuilder mystr = new StringBuilder("Welcome!");
StringBuilder 的属性
Capacity:当前为实例分配的字符数量。默认容量是16.
Length: 对象内的字符串长度的值

StringBuilder的方法
Append:方法可用来将文本或对象的字符串表示形式添加到由当前 StringBuilder 对象表示的字符串的结尾处。
Insert:方法将字符串或对象添加到当前 StringBuilder 中的指定位置。如:bildertxt.insert(2,"insert");
replace(int start, int end, String str):用str替换StringBuilder中指定位置的字符。
StringBuilder.Remove:从当前 StringBuilder 对象中移除指定数量的字符。
delete(int start, int end)、deleteCharAt(int index):删除从start到end间的字符(不包括end)。
StringBuilder.reverse():倒序排列字符。
ToString( ):转换为字符串输出

StringBuilder是jdk5.0中新增的类,在之前使用的是java.lang.String.Buffer。事实上,StingBuilder被设计为与StringBuffer具有相同操作的接口。在单机非多线程的情况下使用StringBuilder会有较高的效率,这是因为StringBuilder没有处理同步(Synchronized)问题。而StringBuffer则会处理同步问题,其在多线程中应用较多。

分享到:
评论

相关推荐

    java CharSequence、String、StringBuffer、StringBuilder详解

    在Java编程语言中,`CharSequence`是一个接口,它是字符序列的抽象基类,包括`String`、`StringBuffer`和`StringBuilder`等类。理解这些类的特点和用途是优化程序性能的关键。以下是对这些概念的详细解释: 1. `...

    java StringBuilder详解

    在Java编程语言中,`StringBuilder`类是字符串操作的一个重要工具,尤其在处理大量字符串拼接时,它的效率远高于`String`类。本篇文章将深入解析`StringBuilder`的使用方法、内部机制以及与`StringBuffer`的区别。 ...

    07 StringBuilder

    ### Java中的StringBuilder详解 在Java编程语言中,`StringBuilder`是一个非常重要的类,它提供了一种高效地构建和操作字符串的方式。与`String`不同,`StringBuilder`对象是可变的,这意味着可以在不创建新对象的...

    java中stringBuilder的用法详解

    Java 中的 StringBuilder 用法详解 Java 中的 StringBuilder 是一个可变的字符串对象,主要用于字符串的操作和修改。下面将详细介绍 StringBuilder 的用法和常用方法。 StringBuilder 的创建 可以使用重载的构造...

    详解C++中StringBuilder类的实现及其性能优化

    在Java和C#中,StringBuilder可以创造可变字符序列来动态地扩充字符串,那么在C++中我们同样也可以实现一个StringBuilder并且用来提升性能,下面就来详解C++中StringBuilder类的实现及其性能优化

    java StringBuilder类的详解及简单实例

    Java StringBuilder类详解及简单实例 Java StringBuilder类是Java语言中的一种字符串操作类,它提供了多种字符串操作方法,如追加、插入、替换、删除等。下面将详细介绍Java StringBuilder类的详解及简单实例。 一...

    StringBuffer 和 StringBuilder 类

    《Java中的StringBuffer与StringBuilder类详解》 在Java编程中,当我们需要对字符串进行多次修改时,StringBuffer和StringBuilder类成为首选。这两个类提供了一种高效且灵活的方式来处理字符串,与不可变的String类...

    Java 中String StringBuilder 与 StringBuffer详解及用法实例

    在Java编程语言中,String、StringBuilder和StringBuffer都是用来处理字符串的重要类,它们各有特点,适用于不同的场景。这里我们将深入探讨这三个类的区别、特性和使用策略。 首先,String类是不可变的,这意味着...

    Java中String、StringBuffer、StringBuilder的区别详解

    Java中的字符串处理是编程中常见的任务,涉及到三个关键类:String、StringBuffer和StringBuilder。它们在功能上相似,但有着重要的区别,主要体现在字符串的可变性、线程安全性和性能方面。 1. 可变性 - String类...

    java String、StringBuilder和StringBuffer的区别详解

    Java中的`String`、`StringBuilder`和`StringBuffer`都是用来处理字符串的类,它们各自有不同的特性和适用场景。在理解它们之间的区别之前,我们首先要知道它们的共同点。 **共同点:** 1. **都是字符串类**:这三...

    JavaSE之StringBuilder类与String类

    #### 二、StringBuilder类详解 **2.1 StringBuilder简介** `StringBuilder`是Java提供的一个可变字符串类,它可以更高效地处理字符串的拼接操作。相比于`String`,`StringBuilder`在进行多次字符串拼接时,能显著...

    javascript StringBuilder类实现

    ### JavaScript StringBuilder 类实现详解 #### 一、简介 在JavaScript中,字符串操作是十分常见的需求之一。虽然原生提供了很多字符串方法(如`concat()`、`split()`等),但在处理大量字符串拼接时,这些方法...

    .net 中的 StringBuilder 和 TextWriter 区别详解

    在.NET框架中,StringBuilder和TextWriter都是用来处理字符串的类,但它们的作用和使用场景有所不同。以下是对两者区别的详细说明: 1. **StringBuilder** StringBuilder是.NET中用于动态构建和修改字符串的类。它...

    基于StringBuilder类中的重要方法(介绍)

    StringBuilder类中的重要方法详解 StringBuilder类是Java中一个非常重要的类,用于字符串的操作和处理。下面我们将对StringBuilder类中的重要方法进行详解。 append方法 append方法用于将参数的字符串表示形式...

    C#中的char、string和StringBuilder的使用详解

    在C#编程中,字符串处理是一个非常重要的环节,涉及到字符(char)、字符串(string)和StringBuilder等多个类型。下面将详细介绍这几种类型在C#中的使用方法和相关知识点。 首先,我们来探讨char类型。在C#中,...

    String、StringBuilder和StringBuffer超详解

    在Java编程语言中,`String`、`StringBuilder`和`StringBuffer`都是处理字符串的重要类,但它们在处理方式和性能上有显著的区别。下面将详细解释这三个类的特点和使用场景。 1. **String类** - `String`类是final...

    C#API大全 API详解

    ### C# API 大全与详解 #### 一、引言 C# 是一种现代、面向对象且类型安全的编程语言,广泛应用于Windows应用程序开发、Web应用开发等多个领域。为了更好地利用C#进行开发,掌握如何调用API是至关重要的。本文将...

    常用类及方法详解.docx

    Java 常用类及方法详解 在Java编程语言中,有一些基础且常用的类和方法,对于初学者和长期未接触Java的开发者来说,熟悉这些基本元素是至关重要的。本篇文档将对其中的一些关键类,如Object、String、StringBuffer...

Global site tag (gtag.js) - Google Analytics