大家来看看我这样理解String与String的比较对是不对??有分散哦:)))
常量池就是在.class文件中已经是常量的东东的集合,比如说类名,方法名,当然,还有类似String s0= "ddd";这样的直接定义的变量(其实很可能是这样:jvm根据.class文件创建了常量池,s0为"ddd"的直接引用).String s1 = new String("ddd");不能直接指向常量,它只是指向了s0,所以s0!=s1,但是s1.intern()=s0----s0.intern()=s0,intern()方法是专门查看String对象的最终位置的一个函数,所以说,String.intern()==String.intern()就相当于String.equals(String).