当前位置: 首页 > article >正文

HashMap 源码解析 底层原理 面试如何回答

HashMap 源码解析 底层原理 面试如何回答一、参考资料【Java视频教程java入门神器附300道Java面试题剖析】 https://www.bilibili.com/video/BV1PY411e7J6/?p172share_sourcecopy_webvd_source855891859b2dc554eace9de3f28b4528二、笔记总结2.1、创建工程2.2、HashMap 构造方法源码2.3、HashMap put 方法源码2.4、面试如何回答JDK 1.8 中 HashMap 中保存的是 Node 对象key 和 value 都是 Node 对象的属性。JDK 1.8 中 HashMap 底层数据结构是数组链表红黑树。当数组某个索引位置上的元素个数达到 8 时并且数组长度达到 64 时这个索引位置的存储结构由链表转为红黑树可以提高查询、修改、删除操作的效率。当使用红黑树的索引位置上的元素数量低于 6 时存储结构退化为链表结构因为红黑树占用的空间大。HashMap 在使用 put 方法添加元素时会根据要添加元素的 key 的 hashCode 方法计算 hash 值然后根据 hash 值计算出元素在数组中的存储位置。当数组存储位置上已经存在元素时如果两个元素的 key 计算出的 hash 值不相同则说明是两个不同的元素旧的元素的 next 属性会指向新的元素形成链表结构HashMap 中的元素都是 Node 对象Node 对象有 next 属性用于记录下一个元素的位置。如果两个元素的 key 计算出的 hash 值相同equals 方法比较返回 true说明是两个相同的 key则把旧元素的 value 值替换为新元素的 value 值put 方法会返回被替换的旧 value 值。如果数组存储位置上没有元素则直接添加元素到数组存储位置上put 方法返回 null。HashMap 默认的数组大小是 16计算因子默认是 0.75,16 * 0.75 12当数组的长度达到临界值 12 时会触发数组的扩容机制。

相关文章:

HashMap 源码解析 底层原理 面试如何回答

HashMap 源码解析 底层原理 面试如何回答 一、参考资料 【Java视频教程,java入门神器(附300道Java面试题剖析)】 https://www.bilibili.com/video/BV1PY411e7J6/?p172&share_sourcecopy_web&vd_source855891859b2dc554eace9de3f28b4…...

线段树入门:算法分析

算法分析线段树采用了分而治之的策略,其点更新、区间更新、区间查询都可以在 时间内完成。树状数组和线段树都用于解决频繁修改和查询的问题,树状数组比线段树更节省空间、代码简单易懂,但是先单数用途更广、更加灵活,凡是可以使用…...

DeepSeek模型版本选择实战手册(2024最新版):从推理延迟、显存占用到LoRA兼容性全拆解

更多请点击: https://intelliparadigm.com 第一章:DeepSeek模型版本选择实战手册(2024最新版):从推理延迟、显存占用到LoRA兼容性全拆解 选择合适的 DeepSeek 模型版本是部署高效、低成本大模型服务的关键前提。2024…...

Gemini企业社会责任实践白皮书(2024独家解密版):覆盖AI伦理、碳足迹追踪与社区赋能的3层合规架构

更多请点击: https://codechina.net 第一章:Gemini企业社会责任实践白皮书(2024独家解密版)概览 本白皮书首次系统披露Google Gemini大模型在2024年度面向环境可持续性、AI伦理治理、数字包容性及社区赋能四大维度的企业社会责任…...

ChatGPT写不出合格投资人邮件?错!真正稀缺的是这5个私募股权语境理解层(附LP偏好词云图谱)

更多请点击: https://intelliparadigm.com 第一章:ChatGPT投资人邮件撰写的核心误区与范式跃迁 许多创业者在使用ChatGPT辅助撰写面向投资人的邮件时,陷入“信息堆砌型”表达陷阱——将产品功能、技术参数、市场数据不加筛选地塞入正文&…...

将taotoken接入openclaw agent工作流的配置要点

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 将taotoken接入openclaw agent工作流的配置要点 在构建基于大模型的智能体应用时,一个稳定、统一的模型调用层至关重要…...

企业如何利用Taotoken实现多模型API的统一管理与访问控制

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业如何利用Taotoken实现多模型API的统一管理与访问控制 在AI应用开发实践中,一个常见且棘手的问题是模型API的管理。…...

GetQzonehistory:如何永久保存你的QQ空间记忆

GetQzonehistory:如何永久保存你的QQ空间记忆 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾在深夜翻看QQ空间,突然发现那些记录着青春点滴的说说正在逐…...

避坑指南:在Windows 11用DOSBox运行老游戏和工具,这些配置细节别忽略

Windows 11怀旧指南:DOSBox经典游戏完美运行配置手册 在数字时代快速迭代的浪潮中,那些承载着无数人青春记忆的DOS经典游戏——《仙剑奇侠传》《金庸群侠传》《大富翁》系列,依然让老玩家们念念不忘。Windows 11作为微软最新的操作系统&#…...

告别笔记本续航焦虑:手把手教你用NVMe电源管理给SSD“降频省电”

告别笔记本续航焦虑:手把手教你用NVMe电源管理给SSD“降频省电”每次带着笔记本出差,最担心的就是电量撑不过一场会议。你可能已经关闭了背光键盘、调低了屏幕亮度,甚至忍痛停用了独显,但续航依然捉襟见肘。其实,有一个…...

基于决策树与Boosting的暗网流量多阶段分类系统设计与实践

1. 项目概述:为什么暗网流量分类是个“硬骨头”?在网络安全这个没有硝烟的战场上,流量分类技术就像是前沿阵地的“雷达”和“声呐”。它的任务很简单:从海量、混杂的网络数据流中,快速、准确地识别出哪些是正常的网页浏…...

漏洞研究工作流:从CVE追踪到实战提升的闭环方法论

1. 这不是“资源列表”,而是一套可落地的漏洞研究工作流很多人一看到“在线资源全攻略”就下意识点开收藏,然后扔进浏览器书签夹吃灰。我见过太多安全从业者——包括刚入行的蓝队新人、想补实战短板的渗透测试员、甚至部分做红队支撑的工程师——把CVE编…...

医疗AI模型窃取攻击:原理、风险与超声影像场景的防御实践

1. 项目概述:当医疗AI的“大脑”面临被“复制”的风险在医疗影像领域,尤其是超声诊断,深度学习模型正以前所未有的速度改变着临床实践。它能从看似杂乱的超声回波信号中,精准地量化肝脏脂肪含量、鉴别乳腺肿物的良恶性&#xff0c…...

喜马拉雅xm-sign v3算法逆向解析与Node.js本地生成

1. 这不是“爬虫教程”,而是一次对前端签名机制的解剖式复现你有没有遇到过这样的情况:抓包看到喜马拉雅App或网页端发起的请求里,总带着一个叫xm-sign的参数,长度固定32位,每次请求都变,但又不是纯随机——…...

喷注重组方案对比:E-scheme与WTA在抗污染与子结构分析中的应用

1. 喷注重组方案:从基础概念到核心原理在粒子物理的高能对撞实验中,比如大型强子对撞机(LHC),我们探测到的最终产物是成千上万个带电和中性粒子。为了理解这些看似混乱的粒子流背后隐藏的物理过程——比如一个高能夸克…...

别再交智商税了!实测告诉你:用AI写论文,哪款软件控制重复率和AI率效果最好?

眼下毕业生和科研工作者的焦虑点很集中:论文查重率好不容易过关,AIGC疑似率却频频爆红;花了大把时间手动改写降AI痕迹,重复率又反弹回来。想靠普通工具同时守住查重和AI两道防线,根本就是天方夜谭。 事实上通用模型AI…...

Android App原生指令通道doCommandNative深度解析与Frida Hook实战

1. 这不是“逆向教程”,而是一次真实App通信链路的解剖现场你有没有遇到过这样的情况:在某A系头部电商App里,点击一个商品卡片,页面秒开;但用常规WebView调试或抓包工具去观察,却看不到任何明显的HTTP请求发…...

如何用Python快速接入Taotoken并调用多模型API构建智能客服系统

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何用Python快速接入Taotoken并调用多模型API构建智能客服系统 为你的CRM网站或内部系统集成智能对话能力,可以显著提…...

在 Taotoken 控制台中如何进行 API Key 的创建权限管理与操作审计

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 在 Taotoken 控制台中如何进行 API Key 的创建权限管理与操作审计 对于需要将大模型能力集成到多个应用或分配给不同团队成员的开发…...

别再乱改sshd_config主文件了!Ubuntu 22.04下用sshd_config.d目录的正确姿势

Ubuntu 22.04下SSH配置管理的现代实践:告别直接修改sshd_config的时代 在Linux系统管理中,SSH服务的配置一直是个看似简单实则暗藏玄机的领域。许多管理员至今仍保持着直接修改 /etc/ssh/sshd_config 文件的习惯,却不知道Ubuntu等现代Linux…...

多版本滤波算法对比试验

一、设计版本V1.0资源二、设计版本V2.0资源和仿真三、设计版本V3.0资源和仿真四、设计优化V4.0设计优化V4.0是在V3.0基础上将inline off去掉后,资源立马下降。总结:V1.0版本,很奇怪,按道理,资源要多些,但是…...

摒弃传统持卡定位弊端 全方位筑牢井下应急安全屏障

摒弃传统持卡定位弊端 全方位筑牢井下应急安全屏障井下人员定位是矿山安全生产、应急救援、风险管控的核心基础支撑,直接关乎井下作业人员生命安全与矿山安全生产大局。长期以来,传统井下持卡定位模式凭借基础管控作用被广泛应用,但在深井开采…...

谷歌内部CSR策划SOP首次流出(非公开版):含风险预判矩阵、利益相关方触达热力图与监管审计应答话术库

更多请点击: https://codechina.net 第一章:Gemini CSR活动策划的底层逻辑与战略定位 Gemini CSR(Corporate Social Responsibility)活动并非孤立的品牌传播动作,而是深度嵌入企业技术价值观与长期可持续发展框架的战…...

3分钟快速上手:通达信缠论可视化插件终极使用指南

3分钟快速上手:通达信缠论可视化插件终极使用指南 【免费下载链接】Indicator 通达信缠论可视化分析插件 项目地址: https://gitcode.com/gh_mirrors/ind/Indicator 通达信缠论可视化插件是一款专为股票投资者设计的缠论技术分析工具,能够将复杂的…...

C# MQTT性能优化:工业级高可靠低带宽实战指南

上个月给某汽车零部件厂做产线改造,差点栽在MQTT上。 现场环境你懂的,几百个传感器同时发数据,带宽只有可怜的2Mbps,还时不时断网。一开始用的是网上随便找的MQTT客户端代码,结果上线第一天就炸了。 消息延迟最高到了3…...

GORM 标签详解(数据库字段映射核心)

很多人刚学 GORM: 会觉得: gorm:"primaryKey" gorm:"index" gorm:"not null"这些东西: 像“魔法字符串”。 其实: 它本质上是在告诉 GORM: 数据库这一列应该怎么创建也就是:…...

快速从 Excel 文件导入 SQL 数据库的方法与分析

引言 在日常数据处理、数据迁移或系统初始化工作中,我们经常需要将存储在 Excel 文件中的数据导入到 SQL 数据库(如 MySQL, PostgreSQL, SQL Server 等)中。手动逐条录入不仅效率低下,而且容易出错。本文将系统性地分析几种主流、高效的 Excel 导入 SQL 方法,并对比其优缺…...

uniAPP 所有章节知识体系概述和网站播放器落地一体方案

uniAPP 前十章知识体系 由于 uni-app 并没有官方统一的"前十章"教程划分,不同教材的章节结构有所不同。以下基于多本主流教材内容,整合出一套通用的 uni-app 学习路线,涵盖从入门基础到后端通信的核心知识。 第1章 初识 uni-app 本章是学习的起点,帮助建立对 …...

AI Agent Harness多租户数据隔离

AI Agent Harness多租户数据隔离:构建企业级智能协作平台的安全基石 1. 引入与连接:从一场云端智能客服泄露事故谈起 核心概念: AI Agent(智能代理):具备自主感知、推理决策、行动执行能力的软件实体,可代表个人/组织完成特定任务,是当前大模型应用落地的核心载体 AI …...

用 AutoGen 编排多智能体协作,让 AI 团队帮你干活

🧑‍💻 博主介绍 & 诚邀关注 作者:专注于 Java、Python、前端开发的技术博主 | 全网粉丝 30 万 在校期间协助导师完成毕业设计课题分类、论文格式初审及代码整理工作;工作后持续分享毕设思路,助力毕业生顺利完成…...