Interview
狗辣子
这个作者很懒,什么都没留下…
展开
-
==和equals的区别
1. ==既可以比较基本类型也可以比较引用类型。对于基本类型就是比较值,对于引用类型局势比较内存地址2.equals的话,它是属于java.lang.Object类里面的方法,如果该方法没有被重写过默认也是==;我们可以看到String类的equals方法是被重写过的,而且String类在日常开发中用的比较多,久而久之,形成了equals是比较值的错误观点。3. 具体要看这有没有重写Objec...原创 2019-09-09 21:58:32 · 80 阅读 · 0 评论 -
equals的重写
以Person为例,何时需要重写equals()?当一个类有自己特有的“逻辑相等”概念,当改写equals()的时候,总是要改写hashCode(),根据一个类的equals(改写后),两个截然不同的实例有可能在逻辑上是相等的,但是,根据Object.hashCode方法,它们仅仅是两个对象。因此,违反了“相等的对象必须具有相等的散列码”。结论:复写equals方法的时候一般都需要同时复写h...原创 2019-09-09 22:13:27 · 116 阅读 · 0 评论 -
Eclipse工具里equals的重写
以eclipse为例,直接鼠标右键即可复写equals和hashCode,^_^问题:为什么用eclipse复写hashCode方法,有31这个数字?计算机的乘法涉及到移位运算。当一个数乘以2时,就直接拿该数左移一位即可!选择31原因是因为31是一个素数!所谓素数:质数又称素数(在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数)在存储数据计算hash地址的时候,我们希望...原创 2019-09-09 22:34:52 · 1274 阅读 · 0 评论 -
蚂蚁美团面试题
原创 2019-09-19 22:36:50 · 156 阅读 · 0 评论