public class Test {
public static void bufferReplace(StringBuffer text) {
text = text.append("C");
System.out.println("还是原来的内存区域:" + text);
}
public static void main(String args[]) {
StringBuffer textBuffer = new StringBuffer("java");
bufferReplace(textBuffer);
/**
* 结果:javac
* 说明:StringBuffer是可变的,所以,当追加字符串时,还是在原来的对象上增加,故在打印时,就变成了javac了,
*/
StringBuffer textBuffer2 = new StringBuffer("java");
StringBuffer a = new StringBuffer("a");
StringBuffer b = new StringBuffer("a");
System.out.println("a.equals(b): " + a.equals(b)); //false
System.out.println(a == b); //false
}
重点: 关于这两个false,按照常理,比如说String的话,答案肯定是true 和 false ,为什么StrngBuffer和StringBuilder都是false呢,查了一下JDK文档,原来这两个自身都没有equals()方法,是从Object中继承来的,所以StringBuffer和StringBuilder如果要比较值的话,只能这样
System.out.println(a.toString().equals(b.toString()));
结果:true
分享到:
相关推荐
在Java中,字符串是我们经常使用的数据类型,而String、StringBuffer和StringBuilder是Java中三种常用的字符串类。在这篇文章中,我们将从源码角度对String、StringBuffer和StringBuilder进行深入分析,了解它们之间...
Java语言的核心库之一就是`java...通过理解并熟练使用`java.lang`包中的类和接口,开发者能够更好地进行异常处理、数据类型转换、字符串操作、数学计算以及对类和对象的基本操作,从而编写出更加健壮和高效的Java程序。
了解 java.lang 包 掌握包装类 掌握String 和 StringBuffer 类 运用以下类的方法: Math Class Object
在Java编程语言中,`StringBuffer`和`StringBuilder`是两个非常重要的类,它们主要用于处理字符串的拼接和修改操作。这两个类位于`java.lang`包下,因此在使用时无需显式导入。本篇文章将深入探讨这两个类的特性和...
在 Java 中,String, StringBuffer 和 StringBuilder 三个类都是用于字符操作的,但它们之间有着很大的区别。 首先,String 是不可变类,意味着一旦创建了 String 对象,就不能修改它的值。每次对 String 对象的...
在Java编程语言中,`String`、`StringBuffer`和`StringBuilder`是处理字符串的三个重要类,它们各自有特定的使用场景和优缺点。理解它们的差异对于编写高效的代码至关重要。 **String类** `String`是不可变的类,...
6. **使用StringBuffer或StringBuilder代替+操作**:在进行大量字符串连接时,使用这两个类可以避免创建大量中间对象。 了解`java.lang.OutOfMemoryError: Java heap space`错误的原因和解决方案,有助于我们在编写...
`String`类与`StringBuilder`和`StringBuffer`的区别在于,后两者是可变的,适合在循环中进行字符串拼接,因为每次调用`+`运算符或`concat()`方法时,`String`都会创建新的对象,这在大量操作时可能会导致性能下降。...
总的来说,理解和熟练使用StringBuffer和StringBuilder类对于编写高效的Java代码至关重要,特别是在处理大量字符串操作或构建动态字符串时。根据实际需求选择合适的类,可以有效地优化程序性能。
11. **构建者模式**: Commons Lang 提供了多种Builder类,如 `StringBuilder` 和 `StringBuffer` 的变体,允许更灵活地构建复杂字符串。 12. **枚举枚举**: `EnumSet` 和 `EnumMap` 类提供了针对枚举类型的集合实现...
在Java 2中,一些新类和方法被添加到`java.lang`包,如`ThreadLocal`、`RuntimePermission`等,以增强安全性、多线程支持和性能优化。 值得注意的是,虽然`java.lang`包中的许多类在早期版本的Java中就已经存在,但...
与 `StringBuffer` 类似,`StringBuilder` 的用法也包括 `append()`、`insert()`、`deleteCharAt()` 和 `reverse()` 方法。 **四、为什么StringBuffer和StringBuilder更适合在循环中使用?** 因为 `String` 对象是...
String、StringBuffer 和 StringBuilder 是 Java 语言中三种不同类型的字符串处理方式,它们之间存在着明显的性能和线程安全性差异。 String String 类型是不可变的对象,每次对 String 对象进行改变时都会生成一...
总的来说,理解`CharSequence`、`String`、`StringBuffer`和`StringBuilder`的特性和用法是每个Java开发者必备的知识。根据具体需求选择合适的类,可以显著提升代码的效率和可维护性。在实际编程中,不仅要关注功能...
StringBuffer:字符创变量 StringBuilder:字符创变量 从上面的名字可以看到,String是“字符创常量”,也就是不可改变的对象。对于这句话的理解你可能会产生这样一个疑问 ,比如这段代码:
在Java编程中,当我们需要对字符串进行多次修改时,StringBuffer和StringBuilder类成为首选。这两个类提供了一种高效且灵活的方式来处理字符串,与不可变的String类相比,它们能避免创建大量未使用的对象,从而提高...
最后,让我们总结一下 Java 中 String, StringBuffer 与 StringBuilder 三种字符串类型的区别和用法。String 类型是不可变的对象,性能不好,适合不需要修改的字符串对象。StringBuffer 类型是可变的对象,性能好,...
当我们尝试对String对象进行操作,如使用`+`进行拼接时,Java编译器实际上会自动转换为使用StringBuilder或StringBuffer的append方法。例如,以下代码: ```java String s1 = "aaa"; String s2 = "bbb" + "ccc"; ...