用这段代码创建了多少个对象? - 我知道 3 个字符串文字在字符串常量池中,而 StringBuilder 对象在堆中,但是当我调用 reverse()、insert() 或 append() 时,它会在池中创建一个新字符串吗?
StringBuilder sb = new StringBuilder("abc");
sb.append("def").reverse().insert(3, "---");
System.out.println( sb );
最佳答案
StringBuilder
只会在调用 toString()
时创建一个新字符串。在此之前,它会保留所有添加到其中的元素的 char[]
数组。
您执行的任何操作,如insert
或reverse
都是在该数组上执行的。
关于java - StringBuilder 是否在每个操作中创建一个新的 String?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22103479/