A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 枷档不弯 初级黑马   /  2019-3-21 13:02  /  833 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

equals方法:
Object 类的 equals 方法实现对象上差别可能性最大的相等关系;即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。
boolean equals(Object obj) 指示其他某个对象是否与此对象“相等”。
Object类equals方法的源码:
public boolean equals(Object obj) {
                return (this == obj);
        }
即如果是基本数据类型则比较值本身,如果是引用数据类型则比较内存地址值。
而有的情况下,我们想看一看两个对象的属性是否相等就必须重写equals方法
1.重写的思路
a.判断当前这两个需要比较的对象是否是同一个true
b.判断传递过来的对象是否为null,如果为null,直接返回false
c.判断是否是同一个类型(因为需要向下转型),去比较对应的属性值
d.如果以上都不满足,返回false
重写方法:alt+insert,选择equals() and hashCode()。
public boolean equals(Object obj) {
        //增加一个判断,传递的参数obj是this本身,直接返回true,提高程序效率
        if(obj==this){
            return true;
        }
        //增加一个判断,传递的参数obj是null,直接返回false,提高程序的效率
        if(obj==null){//因为this这个对象在调用equals方法,故不可能为空
            return false;
        }
        //增加一个判断,是Person类型在转换,防止类型转换异常ClassCastException
        if(obj instanceof Person){
            //使用向下转型(强转)把Object类型转换为Person
            Person p = (Person)obj;
            //比较两个对象的属性;一个是调用方法的this(p1),一个就是p(obj=p2)
            boolean b =this.name.equals(p.name) && this.age==p.age;
            return  b;
        }
        //不是Person类型直接返回false
        return  false;
}

String s1 = null;        String s2 = "abc";
System.out.println( s1.equals(s2));
//NullPointerException  null是不能调用方法的,会抛出空指针异常
Objects类的equals方法:对两个对象进行比较,防止空指针异常
源码:public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
故上述:System.out.println(Objects.equals(s1, s2));//false

java.util.Date:表示日期和时间的类  Date 表示特定的瞬间,精确到毫秒。
毫秒:千分之一秒 1000毫秒=1秒2088-08-08 09:55:33:333 瞬间
毫秒值的作用:可以对时间和日期进行计算
2099-01-03 到 2088-01-01 中间一共有多少天
可以日期转换为毫秒进行计算,计算完毕,在把毫秒转换为日期
时间原点(0毫秒):1970 年 1 月 1 日 00:00:00(英国格林威治)
注意:中国属于东八区,会把时间增加8个小时即时间原点1970 年 1 月 1 日 08:00:00
把毫秒转换为日期:1 天 = 24 × 60 × 60 = 86400 x 1000 = 86400000毫秒
System.out.println(System.currentTimeMillis());//获取当前系

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马