五、(面试题)String str = new String("xyz") 一共创建了几个对象?
String str = new String("xyz") 一共创建了几个对象?
答案是:一个或两个
分析:
- 首先,代码中 new 会在堆中创建一个 String 对象;
- 然后将
"xyz"字面常量拿到字符串常量池中去获取它对应的 String 对象引用,如果拿不到,就会在堆内存中创建一个"xyz"的 String 对象; - 并且把引用保存到字符串常量池里面;
- 后续如果再有字面量
"xyz"的定义,只需要行常量池获取对应的引用就可以了,不需要再创建。
例如:
String s1 = new String("hello java"

最低0.47元/天 解锁文章
1843

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



