`
唯快不破
  • 浏览: 82869 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

String(+) vs StringBuffer(append)

    博客分类:
  • java
阅读更多
以前一直以为append比+快,今天上网查了资料才发现:这种说法是不全面的.

正确的说法应该是:

  1.在运行期做字符串连接,那么append 显然比+快很多

2.在编译期就可以做连接的话,那么使用+要比append快.

例子:

String temp="nnnnnnn"+"jjjjjj"+"jjjjj";(1)

StringBuffer t=new StringBuffer();

t.append("nnnnnnn").append("jjjjjj").append("jjjjjj");(2)

执行的话,上面(1)比(2)快,因为(1)在编译期就已经做好了,相当于String temp="nnnnnnnjjjjjjjjjjjj";而(2)则需要在运行期中做计算,所以比(1)慢.

  • 大小: 57.9 KB
分享到:
评论
1 楼 liangwenzheng 2008-12-05  
哦,原来是这样,多谢分享~

相关推荐

    String ,StringBuffer与StringBuilder

    的处理步骤实际上是通过建立一个 StringBuffer,让它调用 append(),最后再将 StringBuffer 转换成 String()。这样的话 String 的连接操作就比 StringBuffer 多出了一些附加操作,当然效率上要打折扣。并且由于 ...

    String、StringBuffer、StringBuilder的使用方法

    在Java编程语言中,`String`、`StringBuffer`和`StringBuilder`是处理字符串的三个重要类,它们各自有特定的使用场景和优缺点。理解它们的差异对于编写高效的代码至关重要。 **String类** `String`是不可变的类,...

    大学课程讲义-Java基础-Java常用类

    + public StringBuffer append(String s):将指定的字符串追加到当前StringBuffer对象的末尾 + public StringBuffer append(int n):将指定的整数追加到当前StringBuffer对象的末尾 + public StringBuffer append...

    String和StringBuffer的区别

    `StringBuffer`提供了`append()`方法来方便地追加内容,如`sb.append("hello")`。由于不涉及新的对象创建,`StringBuffer`在处理大量字符串拼接时效率远高于`String`。 在上述代码示例中,我们比较了使用`String`和...

    string和StringBuffer的区别

    在Java编程语言中,`String`和`StringBuffer`都是用来表示和操作字符串的重要类,但它们在使用场景和性能上有显著的区别。了解这些差异对于编写高效、优化的代码至关重要。 首先,`String`类是不可变的。这意味着...

    StringBuffer和String_区别

    ### StringBuffer与String的区别详解 #### 一、概念与特性 **String** 是 Java 中一个不可变的类,代表了字符序列。一旦一个 String 对象被创建后,其内容就不能被改变。这使得 String 类非常适合用来表示常量或者...

    string与stringbuffer的区别

    相反,`StringBuffer`(或`StringBuilder`)是可变的,它提供了一系列的方法(如`append`、`insert`、`delete`等)来改变其内容,而不会创建新的对象。`StringBuffer`在多线程环境中是线程安全的,而`StringBuilder...

    String和StringBuffer详细用法总结

    根据给定的信息,本文将对`String`与`StringBuffer`在Java中的使用进行详细的解析与对比,并结合实例深入分析二者的异同及其适用场景。 ### `String` 和 `StringBuffer` 的基本概念 #### `String` 在Java中,`...

    JAVA中String与StringBuffer的区别 自己的学习笔记总结

    ### JAVA中String与StringBuffer的区别 在Java编程语言中,`String` 和 `StringBuffer` 都是非常重要的类,它们用于处理字符串数据。虽然它们都实现了字符串操作的功能,但它们之间存在一些重要的区别,这些区别...

    String-StringBuffer-StringBuilder

    由于`StringBuffer`的方法(如`append`、`insert`等)都是线程安全的,这意味着在多线程环境下,不同线程可以同时调用这些方法,不会引发数据不一致的问题。然而,这也意味着`StringBuffer`在进行修改操作时,会进行...

    String与StringBuffer区别详解

    在Java编程语言中,`String`和`StringBuffer`(在Java 5之后被`StringBuilder`取代,但在多线程环境中仍然使用`StringBuffer`)是处理文本字符串的两个核心类,它们各自有着不同的特性和用途。理解它们的区别对于...

    Java中字符数组、String类、StringBuffer三者之间相互转换

    或者,我们也可以使用append函数将String转换成StringBuffer。例如: String str = "Hello World."; StringBuffer buffer = new StringBuffer(); buffer.append(str); String与字符数组的相互转换 我们可以使用...

    java面试笔试题String 和StringBuffer的区别

    1. **可变性**:`StringBuffer`提供了多种方法来修改字符串内容,如`append()`、`insert()`、`delete()`等,这些操作不会创建新的对象,而是直接修改现有的`StringBuffer`对象。 2. **线程安全**:`StringBuffer`的...

    区分java中String+String和String+char

    使用`javap`反编译这两个方法的字节码,你会发现`stringAddString`方法创建了一个`StringBuilder`对象,然后调用`append`方法两次,分别添加`str1`和`str2`;而`stringAddChar`方法则是先创建`StringBuilder`,然后...

    String&Stringbuffer

    - `append(String str)`:在字符串末尾追加字符串。 - `delete(int start, int end)`:删除指定范围内的字符。 - `insert(int offset, String str)`:在指定位置插入字符串。 - `reverse()`:反转字符串中的字符...

    String和StringBuffer专题

    在上述代码中,`StringBuffer`的`append`方法允许我们在同一个对象上添加内容,避免了创建额外的`String`对象。这在处理大量字符串连接时可以大大提高效率。 然而,值得注意的是,如果字符串连接是在编译时就能确定...

    String总概况及其特性并与StringBuffer的区别详解

    - `append(String str)`: 将指定的字符串添加到`StringBuffer`对象的末尾。 - `insert(int offset, String str)`: 在指定位置插入字符串。 - `delete(int start, int end)`: 删除指定范围内的字符。 - `reverse...

    JAVA中String类与StringBuffer类的区别

    - **方法操作**:StringBuffer提供了一系列方法,如`append()`用于在字符串末尾添加内容,`insert()`用于在指定位置插入内容,以及`delete()`、`replace()`等用于修改已有内容。 - **容量管理**:可以通过`...

Global site tag (gtag.js) - Google Analytics