本帖最后由 laughing 于 2013-3-12 13:33 编辑
String a="abc";
Sting b="abc";
System.out.println("====>"+ a==b ;
结果是true;
原因:
String a = "abc";你定义这样一个变量的时候,java此时先会去常量池寻找有没有"abc"这样的字符串,如果有,直接把内存地址交给a, 否则就生成一个"abc"的字符串当下一个String b = "abc";的时候,发现常量池已经有"abc"了,此时JVM不会再次生成"abc",而是直接交给"abc"引用给b, 所以此时你会发现a == b。
希望对你有帮助!!! |