关于 String str = new String(" xxx")的疑问
之前老师说这里老师说 这种情况会产生两个对象,在类加载时会创建一个""对象放到字符串常量池中, 在运行时会从常量池中赋值一份到堆中,并且将堆中这个对象的引用交给str持有. 但是这里视频中 String str3 = new String("imocc");这种情况,并没有创建一个对象放在常量池中,而是直接在栈中 创建一个str3的引用,然后再堆中创建一个对象,并且把str3指向我们所创建的这个对象。
8
收起
正在回答
1回答
同学你好,这里是因为在老师例子中,已经在常量池中存在“imooc”对象,所以会直接创建str3的引用,不需要在进行创建对象,而在上面的回答中,在常量池中是没有“”对象,所以会在常量池中有一个对象,在堆中有一个对象,一共是两个对象,所以说String str3 = new String("imocc");可能会有1个对象也可能会有两个对象哦~
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
1. Java 零基础入门
- 参与学习 人
- 提交作业 3802 份
- 解答问题 11489 个
本阶段带你迈入Java世界,学习Java必备基础知识,基础语法、面向对象思想以及常用工具类的使用。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星