java - StringBuilder 是否在每个操作中创建一个新的 String?

标签 java string stringbuilder

用这段代码创建了多少个对象? - 我知道 3 个字符串文字在字符串常量池中,而 StringBuilder 对象在堆中,但是当我调用 reverse()、insert() 或 append() 时,它会在池中创建一个新字符串吗?

StringBuilder sb = new StringBuilder("abc");
sb.append("def").reverse().insert(3, "---");
System.out.println( sb );

最佳答案

StringBuilder 只会在调用 toString() 时创建一个新字符串。在此之前,它会保留所有添加到其中的元素的 char[] 数组。

您执行的任何操作,如insertreverse 都是在该数组上执行的。

关于java - StringBuilder 是否在每个操作中创建一个新的 String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22103479/

相关文章:

java - 处理非常大的字符串 Java

java - 如何在 Selenium 中启用弹出窗口

c++ - 以编程方式确定 std::string 是否使用写时复制 (COW) 机制

regex - 查找以某个字母开头的所有单词

swift - 将 html 转换为文本(空格问题)

java - 如何替换 arraylist 中包含元素为 stringbuilder 类型的字符串的元素

java - 使用Java.util.scanner时出现noSuchElement错误

java - 使用 TreeMap 中某些内容的类方法

java - JMenu Action 监听器

ios - swift 正则表达式 : does a string match a pattern?