java String中的intern和String a="abc"的区别到对是什么
如题
String的intern()方法用于检查常量池中如果有等于此String对象的字符串存在,则直接返回常量池中的字符串对象,否则,将此String对象所包含的字符串添加到运行时常量池(字符串池)中,并返回此String对象的引用。
我们再回头看看String a="abc";,这行代码被执行的时候,JAVA虚拟机首先在字符串池中查找是否已经存在了值为"abc"的这么一个对象,它的判断依据是String类equals(Object obj)方法的返回值。如果有,则不再创建新的对象,直接返回已存在对象的引用;如果没有,则先创建这个对象,然后把它加入到字符串池中,再将它的引用返回。
因此我觉得没有什么区别啊。intern()方法能做的事用String a="abc"这种方法同样能做到。那么intern()方法存在的真正意义是什么?求大神点播,多谢。