JDK源码阅读-------自学笔记(二)(java.lang.Object重写equals和hashcode源码)

一、前景提要

阅读JDK源码,所有的类的父类都是Object,Objest中定义有public boolean equals(Object obj)方法,它实现了基础的功能比较两个对象时,是看他们是否指向同一个地址的,同一地址返回的就是true,不同地址返回的就是false,但是,有的时候,比较的不仅是是否地址相同,而是其他条件是否相同的时候,就要重写equals和hashCode方法了.

二、场景描述

当你开发登陆功能的时候,你想比较传入的username和password,跟数据库存的username和password是否相同的时候,常见的写法: 从数据库查询到数据,封装到对象中,然后,对象.username.equals传入的对象.username,这样写虽然也能实现功能,但是,不够优雅,所以,面试的时候时常会问你何时重写equals和hashCode,其实,在涉及到对象,对象的比较的时候,都可以使用.

三、实际开发

模拟场景:

  • 1、从数据库获取用户信息,封装到对象中,使用getUserMessage()模拟:

  • 2、模拟登陆验证,使用login方法

  • 3、模拟登陆成功测试.

  • 4、优雅的equals和hashCode重写方式实现

你可能感兴趣的:(JDK源码阅读-------自学笔记(二)(java.lang.Object重写equals和hashcode源码))