如何知道常量池中是否存在一个字符串?
1、网上有用str==str.intern(),这种方法只能判断该引用是否指向常量池,无论字面量或new String,在intern前后都返回true或false,并无改变。
2、编译阶段编译器是否将字面量存到常量池中?也就是说在程序还没开始运行,甚至类还没加载,常量池中就有值了?
3、new String只在堆区开辟空间,以char[]或byte[]方式在堆区存储,但new String("abc")后括号内的abc也是字面量,根据2,堆和栈中都有值。(两个对象)
.java文件到.class文件的或称叫编译,执行引擎中还有JIT编译器?
求大佬解释