这里有三道题
1.String s =new String(“Hello!”);
2.String s="hello!"
3.String str=“a”+“b”+“c”;
(思考:4.String s=“hello”; String str =new String(s);)
各自创建了几个对象?
第一道题
共创建了2个或者一个,这就充满戏剧性。
第二道题
共创建一个或者零个。
第三题
共创建1个对象。
第四道题
共创建2个或者一个。
Java6和6之前,常量池是存放在方法区中的。
Java7,将常量池是存放到了堆中,常量池就相当于是在永久代中,所以永久代存放在堆中。
Java8之后,取消了整个永久代区域,取而代之的是元空间。没有再对常量池进行调整
本文探讨了Java中字符串对象的创建过程,分析了不同情况下对象创建的数量,并深入讲解了从Java6到Java8常量池存储位置的变化,以及这些变化如何影响内存管理。
1323

被折叠的 条评论
为什么被折叠?



