本帖最后由 JavaUtil 于 2013-4-17 15:24 编辑
字符串处理比较特殊,如果你是new对象的的形势传值(String a=new String("a")),
他会先为变量a分配一块内存空间,然后传给你右面的内存地址;
如果你是用引号传值(String a="a"),他会先把“a”放在一个字符串池中保存,方便以后调用,然后再负值给你。
所以在你的程序中操作变量a和操作字符串a的本质是不同的(虽然显示字符串效果相同),得到的答案也就不同了。
一般字符串的比较都用它的equals方法,因为前辈们帮我们解决了这些问题。 |