==与equals(obj)
==的用法:(基本类型比较数值,常用类型比较地址)
==用在基本类型中,就是判断变量的值,值相同返回true
==用在引用对象中,引用变量存的是对象的地址,地址不同则返回false
判断是否为空
如果是string对象是null,用 == 来判断,否则会抛出异常
java.lang.NullPointerException
如果是空字符串,用来equals() 判断
equals()的用法:
基本类型:直接比较内容(内部已经帮我们覆盖好了equals方法)
如果是自定义对象类型,我们需要重新覆盖equals方法:
(分为5步,以学生对象为例)
public boolean equals(Object obj) {
<1>比较此对象和指定对象是否是同一个
if(this == obj) {
return true;
}
<2>判断传过来的指定对象是否为null
if(obj == null) {
return false;
}
<3>比较此对象和指定对象类型是否一致
if(this.getClass() != obj.getClass()) {
return false;
}
<4>强制类型转换
Student s = (Student)obj;
<5>比较内容是否一致
if(this.age == s.age && this.name.equals(s.name)) {
return true;
}
return false;
}