题目:
1、new String("ab")会创建几个对象?
- 看字节码,就知道是两个。
package string; public class StringNewTest { public static void main(String[] args) { String str = new String("ab"); } }
- 一个对象是:new关键字在堆空间创建的
- 另一个对象是:字符串常量池中的对象 "ab" 。字节码指令:ldc
2、new String("a")+new String("b")会创建几个对象?
package string; public class StringNewTest { public static void main(String[] args) { String s = new String("a") + new String("b"); } }
- 对象1:new StringBuilder()
- 对象2:new String("a")
- 对象3:常量池中的 "a"
- 对象4:new String("b")
- 对象5:常量池中的 "b"
2.1、深入剖析:StringBuilder的toString():
- 对象6:new String("ab")
- 强调一下:toString()的调用,在字符串常量池中,没有生成 "ab"


155

被折叠的 条评论
为什么被折叠?



