Java虚拟机(JVM)的学习笔记——常量池
常量池(存在于方法区)
静态常量池
运行时常量池
String str = "abc";
首先JVM会去常量池里面找是否有"abc"这个字符串的引用,如果有则直接返回常量池中字符串的引用,如果没有则在常量池创建"abc"常量并添加引用
String str = new String("abc")
首先JVM会在堆内存中创建一个String对象
然后JVM会去常量池里面找是否有"abc"这个字符串的引用
如果有则把String对象引用"abc"这个字符串的引用
而str指向的则是String对象本身的引用