1.对于字符串变量来说 ==表示比较的是两个变量的内存是否相等,equals比较的是内容!
例如:String a="123"
String c="123"
String b=new String("123")
那么a==b(false)
a==c(true)
a.equals(b)(true)
注意:StringBuffer s1 = new StringBuffer("a");
StringBuffer s2 = new StringBuffer("a");
s1.equals(s2)(false)
因为StringBuffered类中没有重新定义equals方法,继承的还是Object中的方法(是用来比较地址的)
2.对于非字符串变量来说,==和equals都是比较的是内存地址
例如:Student a=new Student()
Student b=new Student()
a==b(false)
a.equals(b)(flase)
3.如果是基本数据类型如:int,double,float.....就用==不能用equals
4.对于他们的包装类如Integer......
==比较的是内存地址
equals比较的还是内容!
阅读(601) | 评论(0) | 转发(0) |