JDK1.6、1.7、1.8内存区域的变化和String str=“aaa“与 String str=new String(“aaa“)一样吗?new String(“aaa”);创建了几个字符串对象
创建了两个对象,一个在堆中的StringObject对象,一个是在堆中的“3”对象,并在常量池中保存“3”对象的引用地址。在常量池中寻找与s3变量内容相同的对象,没有发现“33”对象,在常量池中创建“33”对象,返回“33”对象的地址。创建了两个对象,一个在堆中的StringObject对象,一个是在堆中的“2”对象,并在常量池中保存“2”对象的引用地址。在常量池中寻找与s变量内容相同的对象,发现已经存在内容相同对象“2”,返回对象“2”的引用地址。s 被初始化为一个新的字符串对象,内容为 “2”。
原创
2024-06-09 18:16:43 ·
929 阅读 ·
1 评论