这里有三道题
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之后,取消了整个永久代区域,取而代之的是元空间。没有再对常量池进行调整