惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
博客园 - Franky
IT之家
IT之家
V
Visual Studio Blog
博客园 - 【当耐特】
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
宝玉的分享
宝玉的分享
博客园 - 叶小钗
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
罗磊的独立博客
小众软件
小众软件
Jina AI
Jina AI

博客园 - work hard work smart

Java 常见面试问题 手撕java常用代码 WebStorm 创建react工程 构建企业级 Text-to-SQL Agent:基于 LangGraph 的智能数据查询系统设计 Harness 工程:驾驭 AI Agent 的工程化艺术 DeepAgents 多智能体架构实战:从设计模式到后端选型 Vue 自定义组件完全指南:从零构建待办事项应用 使用 LangChain + Hugging Face 构建文本向量化服务 SQLAlchemy 使用详解 Python 中使用 Elasticsearch 的完整指南 Qdrant 向量数据库使用指南 OpenEvals 快速入门:LLM 评估指南 DeepEval 快速入门:LLM 应用评估指南 LangSmith 批量评估完全指南 Qwen-Agent 入门指南:快速构建智能体应用 LangSmith 集成实战:从追踪到评估的完整指南 初识 go-zero:一款让你写后端更规范、更高效的 Go 微服务框架 RAG 中为什么需要 Rerank,以及如何使用 Rerank LangChain4j RAG 核心组件与组合方式 如何使用 Elasticsearch 进行全文检索和向量检索 MinerU Docker 部署指南 5 分钟上手:为 Cline 配置一个免费的 MCP 天气服务 Neo4j 图数据库安装与 Spring Boot 集成实战指南 LangFuse 实战指南:用 @observe 三行代码给 LLM 应用加上全链路追踪 Function Call 深度解析:让大模型从"嘴炮"到"实干"的技术革命 Spring AI 提示词模板实战:告别硬编码,实现提示词工程化管理 LangChain4j 实战指南:用 Java 轻松构建 AI 应用 Spring AI 对话短期记忆实战:让大模型拥有"记忆力" Spring AI 提示词工程实战:让大模型更懂你的意图 Spring AI ChatClient 深度解析:优雅构建大模型应用的利器
Java 面试1
work hard work smart · 2026-09-15 · via 博客园 - work hard work smart

1、HashMap原理,线程安全?

数组,链表,红黑树。 非线程安全


2、Java如何进行线程同步

同步锁 synchronized

ReentrantLock锁

Semaphore 信号量


3、CAS原理

Compare And Swap 先比较再交换

有三个操作数 内存位置,预期值A,修改值B,如果内存位置和预期A取出的值相同,则把值替换成B,否则不做处理。


4、JVM垃圾回收之GC算法

标记-整理

标记-清除

标记-复制

5、Mysql索引原理以及查询优化:

B+Tree索引

查询优化:explain  最左匹配

6、TCP,拥塞控制


7、算法:给定一棵二叉树,找到这棵树最中最后一行中最左边的值。


9、电商平台中订单未支付过期如何实现自动关单?

定时任务,定时检查订单是否过期


10、如何设计一个秒杀系统

限流 , MQ异步下单,  商品数据缓存到Redis,Redis扣库存并防止超卖

11、如果你的系统的 OPS 突然提升 10 倍你会怎么设计?

限流降级,扩容,加缓存,异步化 分库分表


12、如何设计一个支持 10 万 OPS 的会员系统

缓存 + 分库分表 + 异步写入 + 集群


13、关于索引的底层实现,为什么选择 B+Tree而不是红黑树?

对比红黑树,他的分叉是2,这样整体树就高,磁盘IO次数就多。

对比B树,B树非叶子节点也存数据,这样分叉就变少,树变高,磁盘IO次数就多。

B+树, 数据存储在叶子节点,非叶子节点存储索引,叶子节点数双向链表,这样就更容易支持范围查找

参考:

为什么选B+树,而不是红黑树或B树?

对比红黑树:红黑树是二叉树,分叉只有2。数据量大时树太高,磁盘IO次数多;而B+树非叶子节点不存数据,分叉大、树矮,IO次数少。

对比B树:B树的非叶子节点也存数据,导致分叉变小,树变高,IO变多;且B树范围查询需要频繁中序遍历。B+树非叶子节点不存数据、节点大小固定,有利于磁盘预读;叶子节点通过双向链表连接,支持高效的范围查询和排序。

总结:B+树把数据全放叶子节点,内部节点只做索引,这种设计最大化地利用了一次磁盘IO能读取的数据量,把树高降到了最低,完美契合数据库磁盘存储的特性。


14、介绍HashMap,与TreeMap区别

HashMap是无序的 O(1),

TreeMap是有序的,红黑树 O(logn)


15、用HashMap实现一个有过期功能的缓存,怎么实现

value 是一个对象,包括创建时间和过期时间,获取key的时候,判断value是否过期
还有定时任务,检查是否过期