1.字符串""与空对象NULL不是一个意思.字符串""是一个存在的对象,只不过对象特殊在于它代表了一个空的字符串.空对象是不存在的对象. 2.String类重载了equals方法,equals方法比较字符串是否完全匹配,所以 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判断字符串,为什么用"=="做不了判断,而要用equal()
最新推荐文章于 2023-08-20 21:27:39 发布