1、java判断字符串,要使用equals,但是,对于null,equal就不可用?
答:
字符串""与空对象NULL不同,它代表了一个空字符串也是一个对象,所以null并不等于"";
String s="a";
boolean b=(s.equals("a"));
则得到的b为true,而==则是比较左右两边的对象是否指向内存的同一位置,事实上可以认为是比较HashCode(哈希码)是否相等。
如:
String a="john";
String b=a;
则"a==b",但如果:
String a="john";
boolean b=(a=="john");
则b为false!因为a虽然是"john",但在第二句中的"john"字符串是一个新创建的匿名String类对象!显然新建的对象与原来的对象在内存中的地址并不相同.
HashCode能证明这个问题.
本文详细解释了在Java中如何正确地比较字符串。重点讲解了使用equals方法与==操作符的区别,以及它们在处理null值时的行为表现。通过具体示例说明了两者之间的差异。
9384

被折叠的 条评论
为什么被折叠?



