leecodecode【面试150】【2026.7.7打卡-java版本】
查找和最小的 K 对数字要点最小堆int[]{数字坐标}想成数组。【x,0】先加进去class Solution { public ListListInteger kSmallestPairs(int[] nums1, int[] nums2, int k) { //最小堆 PriorityQueueint[] pq new PriorityQueue((a,b) - a[0] - b[0]); for(int i 0; i Math.min(nums1.length,k);i){ pq.add(new int[]{nums1[i] nums2[0], i, 0}); } ListListInteger ans new ArrayList(k); while(k-- 0){ int[] top pq.poll(); int i top[1]; int j top[2]; ans.add(List.of(nums1[i], nums2[j])); if(j1 nums2.length){ pq.add(new int[]{nums1[i] nums2[j1], i, j1}); } } return ans; } }颠倒二进制位要点32位置的模拟class Solution { public int reverseBits(int n) { int ans 0; for(int i 0; i 32; i ) { ans n % 2 2 * ans; n n1; } return ans; } }位1的个数要点n1class Solution { public int hammingWeight(int n) { int ans 0; while(n ! 0){ if(n%2 1){ ans; } nn1 ; } return ans; } }只出现一次的数字要点异或^class Solution { public int singleNumber(int[] nums) { // int ans 0; for(int num : nums){ ans ^ num; } return ans; } }只出现一次的数字 II要点位置上相加%3class Solution { public int singleNumber(int[] nums) { //异或 %3 int ans 0; for(int i 0; i 32; i){ int cnt1 0; for(int num : nums){ //取第i位置 cnt1 num i 1; } ans ans | ((cnt1 % 3) i); } return ans; } }数字范围按位与要点抹平后续class Solution { public int rangeBitwiseAnd(int left, int right) { int shift 0; while(left right){ left left 1; right right 1; shift; } return right shift; } }随机知识 MySQL Redis 面试核心知识点总结一、MySQL 篇1. 基础架构一条 SQL 是怎么执行的text客户端 → 连接器管理连接/权限→ 查询缓存8.0已废弃→ 解析器词法/语法分析→ 优化器选择索引→ 执行器调用存储引擎接口→ InnoDB2. 存储引擎InnoDB vs MyISAM对比维度InnoDBMyISAM事务✅ 支持❌ 不支持行级锁✅ 支持❌ 只支持表锁外键✅ 支持❌ 不支持MVCC✅ 支持❌ 不支持聚簇索引✅ 是❌ 否适用场景读写并发高、事务敏感读多写少、非事务型结论MySQL 5.5 默认 InnoDB几乎 90% 场景都用它。3. 索引重中之重3.1 BTree 索引为什么用 BTree 而不是 B-Tree 或二叉树BTree 非叶子节点不存数据一个磁盘页能存更多索引树更矮IO 次数少。叶子节点用双向链表连接支持范围查询和顺序遍历。3.2 聚簇索引 vs 非聚簇索引回表类型叶子节点存什么说明聚簇索引整行数据InnoDB 主键索引就是聚簇索引非聚簇索引二级索引主键 ID查询非索引字段需要回表再查一次主键索引覆盖索引查询所需字段直接在索引中不回表如select id,name where namexxx且name和id是联合索引3.3 最左前缀原则联合索引(a, b, c)相当于三个索引(a)、(a,b)、(a,b,c)。where a1 and b2✅ 用索引where b2 and c3❌ 不走索引跳过了 awhere a1 and c3→ 只走(a)部分3.4 索引下推ICPIndex Condition PushdownMySQL 5.6 引入。在存储引擎层就过滤掉不符合条件的记录减少回表次数。例子where a1 and b2先通过a找到记录在引擎层直接判断b2不符合的不回表。3.5 什么时候索引失效必背情况原因like %abc以 % 开头BTree 无法定位or两边有非索引字段整条 SQL 走全表扫描对索引字段做函数/计算如where date(create_time) 2025-01-01隐式类型转换如varchar字段传int!/无法用索引做等值查找is null/is not null多数情况下失效3.6 为什么索引不宜建太多占用磁盘空间。更新性能下降每次insert/update/delete所有索引都要同步更新。4. 事务与隔离级别4.1 四大隔离级别级别脏读不可重复读幻读READ UNCOMMITTED✅✅✅READ COMMITTED❌✅✅REPEATABLE READMySQL默认❌❌⚠️部分避免SERIALIZABLE❌❌❌4.2 事务隔离级别的实现MVCCMVCC多版本并发控制每一行数据有多个版本通过隐藏字段trx_id和roll_pointer指向 Undo Log。不同事务读到不同版本的数据实现非阻塞读。快照读select不加锁读的是快照版本。当前读select for update/update/insert读的是最新版本并加锁。5. 三大日志MySQL 的“保险丝”日志位置作用Binlog归档日志Server 层记录所有变更增删改用于主从复制和数据恢复。逻辑日志SQL 语句或行数据Redo Log重做日志InnoDB 层记录物理修改“在 Page X 偏移 Y 处写入 Z”。保证事务持久性崩溃恢复。WALWrite-Ahead Logging技术先写日志再写磁盘Undo Log回滚日志InnoDB 层记录修改前的版本用于事务回滚和MVCC 快照读5.1 两阶段提交保证 Binlog Redo Log 一致性textRedo Log Prepare → 写 Binlog → Redo Log Commit这是保证 MySQL 崩溃恢复时主从数据一致的关键机制。6. 锁机制6.1 行锁分类锁类型含义记录锁Record Lock锁定单行记录间隙锁Gap Lock锁定一个范围不包含记录本身防止幻读临键锁Next-Key Lock记录锁 间隙锁InnoDB RR 级别默认面试金句MySQL 在 RR可重复读级别下通过MVCC快照读Next-Key Lock当前读解决了幻读问题。6.2 死锁产生条件循环等待 互斥 不可抢占 请求与保持。解决方案按固定顺序访问资源使用SELECT ... FOR UPDATE时注意顺序开启innodb_deadlock_detect死锁检测自动回滚。7. 性能优化Explain 解读Explain 结果中重点看什么列名关注点typeconstrefrangeindexALL全表扫描要避免key实际使用的索引名NULL代表没走索引rows预估扫描行数越小越好ExtraUsing filesort需要额外排序慢Using temporary用了临时表慢Using index覆盖索引快8. 分库分表策略说明垂直分库按业务模块分订单库、用户库垂直分表大字段拆出去减少单表宽度水平分表按某个字段取模/范围分到多张表分表中间件ShardingSphere-JDBC、MyCat二、Redis 篇1. 为什么 Redis 这么快纯内存操作读写都是内存微秒级。单线程6.0 之前避免了上下文切换和锁竞争但 6.0 多线程仅用于网络 I/O。I/O 多路复用epoll一个线程监听多个 Socket 连接。高效的数据结构SDS、跳表、压缩列表等。2. 五大基础数据类型 底层实现重点数据类型用途底层结构String缓存、计数器、分布式锁SDS简单动态字符串Hash对象属性、购物车ziplist元素少/ hashtable元素多List消息队列、最近 N 条quicklist双向链表 ziplist 混合Set去重、交并差intset全整数少/ hashtableZSet排行榜、延时队列ziplist少/ skiplist dict多3. 持久化方式方式原理优缺点RDB快照全量内存数据写入.rdb文件恢复快占用小但可能丢失最后一次快照后的数据AOF日志记录每一条写命令数据更完整appendfsync always/everysec文件大恢复慢混合持久化4.0RDB AOF 混合兼顾恢复速度和数据完整性4. 过期策略 淘汰策略4.1 过期删除策略策略说明惰性删除访问时检查过期才删除定期删除每 100ms 随机抽取一批带 TTL 的 key 检查并删除主动淘汰内存满时见下方淘汰策略4.2 内存淘汰策略maxmemory-policy策略说明noeviction不淘汰直接返回错误allkeys-lru在所有 key 中淘汰最近最少使用volatile-lru在设置过 TTL 的 key 中淘汰 LRUallkeys-random/volatile-random随机淘汰volatile-ttl淘汰过期时间最近的 key大厂主流选型allkeys-lru追求命中率或volatile-lru只淘汰临时数据。5. 缓存三大问题 解决方案5.1 缓存穿透查不存在的 key请求的 key 在 Redis 和 DB 都不存在绕过缓存直接打 DB。解决方案布隆过滤器Bloom Filter先判断 key 是否存在不存在直接返回。缓存空值对不存在的 key 也缓存null并设短 TTL。5.2 缓存击穿热点 key 突然过期一个热点 key 过期瞬间大量请求同时打到 DB。解决方案互斥锁SETNX只允许一个线程去查 DB其他等待/重试。逻辑过期Redis 不设物理过期在 Value 里存过期时间戳过期时异步更新当前先返回旧数据。5.3 缓存雪崩大批 key 同时过期多个 key 同时过期或 Redis 宕机大量请求直接打 DB。解决方案过期时间加随机值避免大量 key 同时过期。多级缓存本地缓存Caffeine Redis 两层。熔断降级Redis 挂了直接返回兜底数据不打 DB。Redis 高可用主从 哨兵 / Cluster 集群。6. 分布式锁Redisson 看门狗标准写法原子性bashSET lock_key unique_value NX EX 30Redisson 的改进看门狗 WatchDog默认锁有效期 30 秒业务没执行完自动续期每 10 秒续一次。防止业务执行时间长导致锁自动释放引发并发问题。底层依赖lua脚本保证原子性判断锁持有者 释放锁。7. 集群模式模式适用场景特点主从复制读写分离一主多从主写从读。主挂需人工介入哨兵模式Sentinel高可用在主从基础上加哨兵自动故障转移选新主Cluster 集群海量数据 10G分片16384 个槽位多主多从。不支持跨槽位事务三、面试综合追问“MySQL 和 Redis 怎么配合使用”典型场景读请求先查 Redis命中则返回未命中则查 MySQL回写 Redis 并返回。写请求先更新 MySQL再删除或更新Redis 缓存。大厂选型强一致场景转账、支付走 MySQL不用缓存。读多写少场景商品详情、文章Redis MySQL允许短暂不一致。最终一致方案订阅 MySQL Binlog如 Canal异步更新 Redis彻底解耦。 面试金句背下来直接加分MySQL 索引“BTree 的非叶子节点不存数据叶子节点用链表相连既支持等值查询也支持范围查询磁盘 IO 次数少。”事务隔离“InnoDB 在 RR 级别下通过 MVCC 快照读 Next-Key Lock 当前读解决了幻读问题。”Redis 快“单线程 内存 I/O 多路复用 高效数据结构四者缺一不可。”缓存三大问题“穿透用布隆过滤器击穿用互斥锁或逻辑过期雪崩用过期随机值 熔断降级。”分布式锁“SET NX EXlua脚本保证原子性Redisson 看门狗解决锁续期问题。”把这份笔记刻进脑子里MySQL Redis 这块你就可以从容应对绝大多数面试了如果某个具体点如 Binlog 的三种格式、跳表原理、哨兵选举过程想深挖随时可以继续聊。碎碎念后续会更新每天学习的八股和算法 题开始准备秋招的第58天。努力连续更新100天以后每天就按秋招项目【java agent】科研必做项目算法八股锻炼身体来总结。总结继续重新看八股了加油加油1.算法面试150 118/150 2h2.秋招项目【java 项目】【agent 项目 】3.科研要跑一下4.实习7h6.背八股2h7.锻炼身体总结mysql和redis

相关新闻

专业净化系统工程承建商推荐华建净,打造无尘洁净车间

专业净化系统工程承建商推荐华建净,打造无尘洁净车间

一、净化系统工程,是洁净车间的核心灵魂 很多企业误以为无尘洁净车间只需要做好墙面、吊顶、地坪装修即可,实则真正决定车间洁净效果的核心是净化系统工程。净化系统包含空气过滤系统、新风排风系统、恒温恒湿系统、压差控制系统、消毒灭菌系统、防静电…

2026/7/8 1:11:10 阅读更多 →
DVWA 靶场 10 大漏洞实战:从 Low 到 High 的 3 种安全级别攻防解析

DVWA 靶场 10 大漏洞实战:从 Low 到 High 的 3 种安全级别攻防解析

DVWA 靶场 10 大漏洞实战:从 Low 到 High 的 3 种安全级别攻防解析在网络安全领域,实战演练是提升技能的关键环节。DVWA(Damn Vulnerable Web Application)作为一个专为安全测试设计的脆弱 Web 应用,集成了 10 种常见 …

2026/7/8 1:09:09 阅读更多 →
企业知识图谱核心难点拆解:实体架构规范化治理实操经验

企业知识图谱核心难点拆解:实体架构规范化治理实操经验

很多人都觉得,企业级知识图谱的核心难点,是让AI多识别一些实体、多关联几条关系边。 但真正落地到电信业务场景后就会发现,这根本不是瓶颈。 知识图谱真正难做的地方,在于抽取出来的知识能不能被有效治理。 同一个物件&#xff0c…

2026/7/8 1:09:09 阅读更多 →

最新新闻

本地知识库搭好了但不好用?RAG 调优实战:检索准确率从 40% 拉到 90%

本地知识库搭好了但不好用?RAG 调优实战:检索准确率从 40% 拉到 90%

上篇文章教大家搭了一套本地私有知识库,后台收到不少留言——“搭是搭好了,但搜出来的东西经常牛头不对马嘴,问合同条款给我返回公司简介”。 别急,这不是你的问题。在多数通用业务知识库场景下,RAG 开箱即用的默认配…

2026/7/8 1:57:20 阅读更多 →
2026三大系统AI英语启蒙App深度测评:哪款更适合幼儿0基础系统学

2026三大系统AI英语启蒙App深度测评:哪款更适合幼儿0基础系统学

当下幼儿英语启蒙数字化工具品类丰富,不同产品依托的内容体系、教学逻辑、配套服务存在明显区分。部分产品主打自研轻量化课程,部分依托专业出版社成熟分级资源搭建学习框架,面向3-8岁儿童家庭的需求各有侧重。本文选取市场受众较广的三款AI英…

2026/7/8 1:57:20 阅读更多 →
为什么很多降重越改越高?如何选能同步降低查重率与 AIGC 标记的 AI 工具?

为什么很多降重越改越高?如何选能同步降低查重率与 AIGC 标记的 AI 工具?

“改了三个通宵,查重率从35%降到了12%,结果AIGC率从40%飙到了68%——导师直接说我的论文‘AI味太重’,让我重写。”这不是个例。2026年,知网、维普等检测平台全面升级为“语义指纹识别 AIGC文本双引擎筛查”模式。无数毕业生陷入…

2026/7/8 1:55:20 阅读更多 →
PCB 丝印设计规范解析:从 3 号字体到 5mm 板边距的 10 个关键参数

PCB 丝印设计规范解析:从 3 号字体到 5mm 板边距的 10 个关键参数

PCB 丝印设计规范解析:从 3 号字体到 5mm 板边距的 10 个关键参数在PCB设计中,丝印层(Silkscreen)作为电路板的"身份证",承载着元器件标识、版本信息、安全警告等关键内容。优秀的丝印设计不仅能提升电路板的…

2026/7/8 1:53:19 阅读更多 →
经纬度转北斗网格位置码(非极地区域,编码篇)

经纬度转北斗网格位置码(非极地区域,编码篇)

前言 在 GPS 和北斗卫星导航系统的加持下,经纬度已成为描述地球位置的标准方式。但在城市管理、物流配送、无人机路径规划等场景中,直接使用经纬度存在数据量大、查询效率低等问题。 北斗网格码将地球表面划分为多层网格,为每个网格分配唯一…

2026/7/8 1:51:19 阅读更多 →
HT200铸件工艺设计3大误区:基于左支座实例的CAD/CAM协同分析

HT200铸件工艺设计3大误区:基于左支座实例的CAD/CAM协同分析

HT200铸件工艺设计的3大数字化协同陷阱:从CAD到CAM的实战避坑指南在机械制造领域,HT200铸铁件的加工工艺设计正经历着从传统经验驱动向数字化协同的范式转变。左支座这类典型铸铁零件的加工质量,往往在CAD模型阶段就已埋下伏笔。本文将通过三…

2026/7/8 1:51:19 阅读更多 →

日新闻

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破

3大核心能力重塑《明日方舟》游戏体验:MAA自动化助手的革命性突破 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手,全日常一键长草!| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: …

2026/7/8 0:00:48 阅读更多 →
MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N+1 到批处理的全路径

MyBatis 批量操作深度优化——从 N1 到批处理的全路径 一、从"功能正确"到"性能可接受"——MyBatis 批量操作的三段式进化 MyBatis 在日常增删改查场景中几乎是无感的——实体映射直观、SQL 控制灵活。但当数据量从千级上升到十万级、百万级,许…

2026/7/8 0:00:48 阅读更多 →
工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

工业负载控制方案:TPD2015FN与PIC18F45K22应用解析

1. 工业负载控制方案概述在工业自动化、电机驱动和照明控制等高需求场景中,可靠地控制电感和电阻负载是核心挑战之一。TPD2015FN作为东芝的8通道高端智能功率开关IC,配合PIC18F45K22微控制器,能够构建一套稳定、高效的负载控制系统。这套组合…

2026/7/8 0:02:48 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻