StringBuilder.intern
时间: 2023-11-07 20:51:12 浏览: 143
`StringBuilder.intern()` 方法不是 `StringBuilder` 类的一个有效方法。`intern()` 方法是 `String` 类的一个方法,用于将字符串对象添加到字符串常量池中,并返回一个指向常量池中该字符串的引用。
当我们使用 `new String("hello")` 创建一个字符串对象时,它会在堆中创建一个新的对象,并且这个对象不在常量池中。而当我们调用 `intern()` 方法时,如果常量池中已经有了一个相同值的字符串,则返回常量池中的引用;如果常量池中没有相同值的字符串,则会将新的字符串对象添加到常量池中,并返回常量池中的引用。
下面是一个示例:
```
String str1 = new String("hello");
String str2 = str1.intern();
System.out.println(str1 == str2); // false
```
在上面的示例中,`str1` 和 `str2` 引用的是不同的对象。因为 `str1` 是通过 `new` 关键字创建的,它存在于堆中;而 `str2` 则是通过调用 `intern()` 方法返回的常量池中的引用。
需要注意的是,对于字符串常量(直接以双引号括起来的字符串),它们在编译时就已经被添加到常量池中了,不需要使用 `intern()` 方法。只有通过 `new` 关键字创建的字符串对象才需要使用 `intern()` 方法来将其添加到常量池中。
希望能够帮助到你,如果有任何疑问,请随时提问。
阅读全文