String两种创建方式的区别

创建String有两种方式:

方式一:直接赋值 String s = "jack";

方式二:调用构造器 String s2 = new String("jack")

方式一: 先从常量池查看是否有"jack"数据空间,如果有,直接指向;如果没有则重新创建,然后指向。s最终指向的是常量池的空间地址

方式二: 现在堆中创建空间,里面维护了value属性,指向常量池的jack空间。如果常量池没有“jack”,重新创建,如果有,直接通过value指向。最终指向的是堆中的空间地址。
image

posted @ 2022-08-19 14:19  yfs1024  阅读(101)  评论(0)    收藏  举报