[Java]Java面试常用知识点总结 — JavaSE 部分

6 篇文章 4 订阅 ¥299.90 ¥399.90
本文详细总结了Java面试中JavaSE部分的重要知识点,涵盖了基础、关键字、面向对象、集合、线程、锁、JDK特性、反射、JVM及GC等多个方面。深入探讨了对象的equals()和hashcode()、Map分类、线程安全、线程同步、反射机制、JVM内存模型等关键概念,旨在帮助面试者全面理解和掌握Java核心技术。
摘要由CSDN通过智能技术生成

文章目录

一、JavaSE 部分

1、Java 基础

①Java 基础部分(基本语法,Java 特性等)

1、为什么重写 equals 还要重写 hashcode?

链接:https://www.jianshu.com/p/75d9c2c3d0c1
考点:java 基础
参考回答:
因为在HashMap中,如果要比较key是否相等, 要同时使用这两个函数。
重载 hashCode()是为了对同一个key,能得到相同的 HashCode,这样 HashMap 就可以定位到我们指定的 key 上。
重载 equals()是为了向 HashMap 表明当前对象和 key 上所保存的对象是相等的,这样我们才真正地获得了这个 key 所对应的这个键值对。

因为自定义的类的hashcode() 方法继承于 Object 类,其 hashcode 码为默认的内存地址,这样即便有相同含义的两个对象,比较也是不相等的。
HashMap中的比较key是这样的,先求出 key的hashcode(),比较其值是否相 等,

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一杯糖不加咖啡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值