回答知识总结02
1、集合的分类必背关键字只记这些不容易乱两大主干Collection 单列、Map 双列List 关键词有序、可重复、有下标Set 关键词无序、不重复、无下标Map 关键词key-value、key 唯一超短考场口述话术Java 集合分成两大类Collection 单列集合每次存一个对象Map 双列集合存 key 和 value 一对数据。 Collection 又分 List、Set、Queue。List 有序可重复带索引Set 元素不能重复Queue 是先进先出队列。Map 的 key 不能重复可以通过 key 找 value。2、set怎么保证元素不重复必背极简关键字HashSethashCode 定位equals 判内容两者全同 重复TreeSet比较器返回 0 即为重复LinkedHashSet继承 HashSet去重逻辑和 HashSet 完全一致额外保留插入顺序考场一句话速答HashSet 先靠 hashCode 找位置再用 equals 比对内容全都一样就判定重复TreeSet 通过比较器对比结果为 0 则重复。3、Hash冲突解决方式必背极简关键字拉链法数组 链表 / 红黑树HashMap开放寻址往后空位找再哈希换哈希函数溢出区单独存冲突数据考场一句话速答主流四种拉链法、开放寻址、再哈希、公共溢出区。Java HashMap 使用拉链法冲突元素挂链表长链表转为红黑树。记忆小窍门拉链 挂链子开放寻址 挨个往后挪再哈希 换公式溢出区 单独小仓库。HashMap 认准拉链法。hashmap数据结构必背极简关键字JDK7数组 链表JDK8数组 链表 红黑树阈值 8 树化、阈值 6 退链考场一句话速答JDK1.8 的 HashMap 底层是哈希数组搭配链表链表长度到 8 且数组足够长就转红黑树节点少于 6 变回链表JDK1.7 只有数组加链表。记忆小窍门7 只有链表8 优化树化8 树 6 链平衡查询速度和维护成本。hashmap、hashtable、concurrentHashMap区别必背极简关键字HashMap不安全、可存 null、性能高 HashTable全表 synchronized、不可 null、低效淘汰 ConcurrentHashMap分段锁 (JDK7)/ 锁头节点 (JDK8)、线程安全、不可 null、并发最优。考场一句话速答HashMap 单线程最快线程不安全支持 nullHashTable 锁住整张表并发差、不能存 nullConcurrentHashMap 细分锁粒度保证安全多线程首选同样不允许 key/value 为 null。记忆小窍门HashMap 单线程专用HashTable 全上锁笨重ConcurrentHashMap 精准加锁安全又快三者只有 HashMap 能放 null。hashmap的set流程必背极简关键字判空初始化→算 hash 找下标空则直接存key 重复覆盖冲突链表 / 红黑树追加链表 8 树化超阈值扩容考场一句话速答先初始化数组通过 hash 定位下标空位直接存入key 重复覆盖 value冲突挂链表或红黑树链表过长转红黑树元素总数超标就扩容。记忆小窍门找位置→有空就放重了替换冲突挂链链长变树装太满扩容。hashmap cap2^n为什么怎么保证必背极简关键字原因hash (len-1)高效取模非 2 次幂冲突暴增 保证tableSizeFor 向上凑 2 次幂默认 16扩容翻倍考场一句话速答为了用位运算替代取模提升效率减少哈希冲突依靠 tableSizeFor 函数自动修正容量加上每次扩容翻倍全程保证容量是 2 的 n 次方。记忆小窍门位运算更快len 全 1 才能均匀散列随便给的容量靠 tableSizeFor 凑成 2 次方扩容乘 2 永久合规。hashmap hash方法实现必背极简关键字0.75 折中太大冲突多太小频繁扩容费内存泊松分布碰撞最低考场一句话速答0.75 平衡内存利用率和哈希冲突值太高冲突多查得慢值太低扩容频繁浪费内存统计学上该数值碰撞概率最低。记忆小窍门大 塞太满打架多小 空太多总搬家0.75 刚刚好兼顾省钱和速度。concurrentHashMap怎么实现的必背极简关键字JDK7Segment 分段锁ReentrantLock 锁分段 JDK8无分段CASsynchronized 锁桶头节点结构同 HashMap多线程扩容。考场一句话速答JDK7 依靠 Segment 分段锁提升并发JDK8 去掉分段用 CAS 配合 synchronized 锁住哈希数组单个桶首节点结构和 HashMap 一致读写并发效率更高。记忆小窍门7 分大块上锁8 精准锁小格子无锁读、CAS 插空、有节点锁头结点。cop yonwtitle ArrayList是什么怎么实现的必背极简关键字写时复制读无锁、写加锁复制新数组弱一致性读多写少适用三、考场一句话速答CopyOnWriteArrayList 是线程安全 List读取不加锁增删改加锁并复制新数组完成修改适合读多写少遍历不会报并发修改异常。四、记忆小窍门读随便读写先复制、改新数组再换引用多读少写才好用写多容易卡。

相关新闻

SpringBoot服务器监控系统设计与实现

SpringBoot服务器监控系统设计与实现

1. 项目概述:SpringBoot服务器运维监控系统的核心价值在当今互联网服务高可用性要求的背景下,服务器运维监控已成为保障业务连续性的关键基础设施。这个基于SpringBoot的监控系统设计,主要解决传统运维中人工巡检效率低、故障响应滞后的问题。…

2026/10/9 3:28:54 阅读更多 →
ArcGIS 3D Analyst栅格插值方法详解与实战技巧

ArcGIS 3D Analyst栅格插值方法详解与实战技巧

1. 项目概述作为一名GIS从业者,我经常需要处理各种空间数据,其中栅格插值是最基础也最常用的操作之一。Arctoolbox中的3D Analyst工具集提供了多种栅格插值方法,但很多新手在使用时常常感到困惑:到底该选择哪种插值方法&#xff1…

2026/10/9 10:20:26 阅读更多 →
MapStruct在微信API对接中的高效DTO转换实践

MapStruct在微信API对接中的高效DTO转换实践

1. 为什么需要DTO与领域模型转换?在对接微信API的开发过程中,我们经常遇到这样的场景:微信接口返回的JSON数据结构与我们内部业务系统的领域模型并不一致。举个例子,微信用户信息接口返回的字段可能是nickname,而我们内…

2026/9/29 10:53:37 阅读更多 →

最新新闻

微信小程序+Spring Boot医院设备管理系统:从数据库到扫码全流程实战

微信小程序+Spring Boot医院设备管理系统:从数据库到扫码全流程实战

1. 把毕设题目拆开看:这套系统到底在解决什么问题 临近毕业季,很多同学挑选毕设课题时会第一眼相中“基于微信小程序的医院医疗设备管理系统”,觉得它有场景、有画面感,小程序端扫扫码、后台管管设备,整体难度不高&…

2026/10/13 12:36:39 阅读更多 →
数组基础全解:从内存模型到实战避坑与刷题套路

数组基础全解:从内存模型到实战避坑与刷题套路

数组基础这个主题,放在“day2”来学其实挺有意思。很多教程都把它当成第一天,但真正刷过题之后你会发现,数组远不是“会写 for 循环”就够了。它既是面试题里最朴素的存储结构,也是二分查找、滑动窗口、双指针这些进阶技巧的载体。…

2026/10/13 12:36:39 阅读更多 →
单片机按键菜单框架设计:从状态机到多级菜单的轻量实现

单片机按键菜单框架设计:从状态机到多级菜单的轻量实现

1. 从裸机到菜单:为什么按键交互值得单独设计一套框架很多刚接触单片机的朋友都有过这样的经历:点亮LED、驱动数码管、读取按键状态,这些单独的功能模块跑起来都没问题,可一旦要把它们串成一个带菜单的完整系统,代码就…

2026/10/13 12:36:39 阅读更多 →
OpenClaw本地部署实战:从环境配置到模型接入

OpenClaw本地部署实战:从环境配置到模型接入

1. OpenClaw 是什么:一个能跑 AI 代理的本地运行时1.1 为什么叫“框架”而不是“应用”OpenClaw 是一个开源的 AI 代理运行框架,名字挺直白——Open 是开放,Claw 是爪子,组合起来就是“伸出爪子去抓取任务”。它和市面上常见的 AI…

2026/10/13 12:36:39 阅读更多 →
ONLYOFFICE桌面编辑器Linux ARM版:实测与安装部署完整指南

ONLYOFFICE桌面编辑器Linux ARM版:实测与安装部署完整指南

这两年因为工作原因,我手里攒了好几台 ARM 设备,有 ARM 笔记本,也有巴掌大的单板电脑。每次想在这些设备上正经处理一份 docx 或 xlsx,都会陷入同样的尴尬:浏览器里开在线编辑器,卡;本地用开源办…

2026/10/13 12:36:39 阅读更多 →
STM32F103C8T6 HAL库工程模板搭建指南:从时钟树到串口重定向

STM32F103C8T6 HAL库工程模板搭建指南:从时钟树到串口重定向

简介:这份STM32F103C8T6 HAL库工程模板面向嵌入式初学者与需要快速搭建开发框架的工程师,基于ARM Cortex-M3内核的入门级芯片,解决从零编写底层驱动耗时费力的问题。资源包共379个文件,约13.07MB,以85个h头文件、70个c…

2026/10/13 12:35:38 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →