牛客网#Java开发校招面试考点汇总# 答案总结001

最近在准备秋招,发现了牛客网上一个很详细的面试考点汇总,但是没有答案,于是自己在复习的同时总结一下题目的答案。

为什么重写equals还要重写hashcode

因为如果两个对象相等,他们的hashcode一定要相等。hashcode计算是根据内存地址计算的,必须重写后才能让不同的两个对象hashcode相等。

 

说一下map的分类和常见的情况

HashMap 无序

TreeMap 有序

LinkedHashMap 可以记住元素的插入顺序

 

Object若不重写hashCode()的话,hashCode()如何计算出来的?

若没有重写,默认根据对象的内存位置计算一个特有的序号

 

==比较的是什么?

==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同。对于基本类型,就是比较值是否相等,对于引用类型,比较是否引用同一对象,即指向同一内存首地址。

 

若对一个类不重写,它的equals()方法是如何比较的?

public boolean equals(Object obj) {
   
return (this == obj);
}

就是比较两个引用是否指向同一对象。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值