大家总是争论的一些老问题
这两天看了好多有关==和equals的帖子,尤其是关于String和数组,现在还是有点迷茫。
public class Test{
public static void main(String[] args)
{
String a=new String("abc");
String b="abc";
System.out.print(a==b);
}
}
为什么会是false?String a=new String("abc");这句是把对象“abc”的引用赋给变量a,这时在执行String b="abc"之前,“abc”就已经存在了,那变量b不就应该指向存在的这个“abc”吗?那输出的就应该是true才对,但结果是false,这中间有什么过程吗还?看了其它的帖子,砍刀一些高手说的什么用到对象池什么的,我还是不太明白,希望高手能给个详细的解释。