String对象和StringBuffer对象都是字符串类型,创建后的对象都可以原地修改。
时间: 2024-03-09 09:48:48 浏览: 203
串匹配、分割、转换-java对象与类课件
这是不正确的。在Java中,String对象是不可变的,一旦创建就无法更改它的值,任何对它的修改都会导致创建一个新的对象。而StringBuffer对象是可变的,可以原地修改,而不会创建新的对象。
例如,假设我们有以下代码:
```
String str = "Hello";
str = str + " World";
```
在这个例子中,我们尝试将字符串"Hello"和" World"连接起来,并将结果赋值给变量str。但是,由于String对象是不可变的,所以这个操作实际上会创建一个新的String对象,而不是在原地修改str对象。因此,最终str的值是一个新的String对象"Hello World",原来的"Hello"对象仍然存在于内存中,但是没有被引用。
相反,如果我们使用StringBuffer对象,就可以在原地修改它的值,而不会创建新的对象。例如:
```
StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");
```
在这个例子中,我们使用StringBuffer对象sb来处理字符串,通过调用append()方法将" World"字符串添加到原来的"Hello"字符串后面,而不是创建一个新的StringBuffer对象。因此,最终sb的值是"Hello World",没有创建任何新的对象。
阅读全文