老师,关于String s =new String("ab")中“ab”
是不是“ab”这个对象在常量池,而它的引用在堆内存new String这个对象里面(或者说new String 这个对象里面放的是不是“ab”这个对象的引用而不是值?因为对象都是用引用来传递的,可以这么理解吗?那也就是说常量池中的每个字符串对象都有地址,只不过都是用引用的时候可以直接用本身来表示,譬如“ab”),请老师解答疑惑
3
收起
正在回答 回答被采纳积分+1
1回答
univers_prodigal
2019-03-17 10:24:42
ab不在常量池中,String str ="ab",是在数据共享区有一个ab的字符串,在栈里面开辟了一个字符串变量str,str存的是数据共享区字符串ab里面的地址。
通过new关键字的是在堆中开辟一个空间,然后在开辟的空间里面存了一个字符串,看源码本质上是一个不可变数组。知识有限,不知道这样说合不合理。
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星