虾皮Java开发一面-8.13
- 时间
- 2026-08
- 来源
- 牛客网
《面试题目》
- 一、java基础
- Hashmap结构
- Hashmap扩容机制
- Hashmap线程安全吗,为什么
- 怎么保障线程安全
- 频繁full gc怎么排查
- 二、操作系统
- 进程和线程的区别
- 用户态和内核态的区别
- 三、数据库
- MySQL事务隔离级别
- MVCC原理,为什么可以做到可重复读
- redis分布式锁
- 四、计算机网络
- tcp三次握手
- tcp四次挥手
- tcp拥塞控制和流量控制
- 五、ai-coding手撕
《参考解析》
- Redis常用于缓存、分布式锁和计数。缓存与数据库更新通常采用“先写数据库、再删除缓存”,并通过重试、延时双删或消息补偿处理删除失败。
- MySQL索引通常使用B+树,叶子节点按顺序连接,适合范围查询;设计索引时结合选择性、最左匹配原则和执行计划,避免无效索引与回表开销。
- 并发问题应先明确共享状态和一致性边界,再选择锁、CAS或队列。线程池需要根据任务是CPU密集还是IO密集设置核心线程数、队列容量和拒绝策略,并监控活跃数与队列长度。
- TCP通过三次握手建立连接、四次挥手释放连接;HTTPS在TLS握手中协商会话密钥,并用证书校验服务端身份,数据传输阶段主要使用对称加密。