创建字符串的过程理解
问题描述:
图中常量池,我可以理解为对象常量池,里面存储的应该是一个字符串对象,我这样理解对吗?
相关截图:
创建String对象的过程:
一、String str = "imooc";
二、Java会到常量池中找有没有值为“imooc”String对象有的话,直接赋值,没有的话,就创建一个 new String("imooc");,放到常量池中,str1 直接指向这个地址
三、str2 也是一样,这时常量池中已经有值为“imooc”的String对象了,直接赋值
四、String str3 = new String("imooc),这里老师看我讲的对不对,这是声明并实例化了一个String类型的对象,在实例化过程中其实也是先去常量池中查找imooc是否存在,存在直接拿来作为构造方法的参数
正在回答
同学你好,1、同学理解存在一点小问题,Java会到常量池中找有没有值为“imooc”String对象有的话,直接赋值,没有的话,就创建一个 imooc(并不会进行实例化),放到常量池中,str1 直接指向这个地址。
2、第三点同学理解是正确的。
3、在创建String对象的过程中第四点有一点小问题,在实例化时,并不会将常量池中的数据,作为参数进行实例化。而是根据实例化传递的参数进行实例化的。
关于String对象实例化,String s = new String(“imooc”); 是先在堆中创建,然后去常量池中看一下,如果没有,就放一份,如果有就不放了(和堆中的地址不一样)。
祝学习愉快!
- 参与学习 人
- 提交作业 9397 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星