String i5 = new String(“abc”);既然new了,那肯定是存在堆内存中了,但是这里有个小陷阱:记得看过一个面试题,他问String i5 = new String(“abc”);是开辟了一块内存还是两块,这里你不管回答一块还是两块都不一定对,因为new String()他会强制性的在堆内存中开辟一块内存,“abc”他也是一个对象啊,JVM会现在常量池中找有没有abc这样的字符串,如果有,直接将这个对象拷贝到堆内存中,这样之开辟一快内存,如果没有,在常量池中新建这个对象,这样的话,开辟两块内存