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

每日面试实录·滴滴·校招·JAVA

📍面试公司:滴滴
📌面试岗位:Java 开发实习
📅投递时间:4 月 15 日
📞面试时间:4 月 25 日 上午
🔄面试轮次:技术一面 + 技术二面
🕒面试时长:每轮约 40 分钟


面试整体节奏:

滴滴这次Java 岗位几乎是一场“纯八股”考试,项目经历一笔带过,直接从 Java 基础、并发编程、数据库、Spring 框架、JVM 到系统优化、分布式锁、排查手段全流程覆盖。

一面主打八股基础,面试官态度很和善,会适当提示,属于“辅助答题”型;二面直接拉高强度,题目深度 + 宽度兼具,追问较多,一些系统性问题处理不太好,明显感觉有点被带崩了。


✅ 一面题目逐题整理与解析:

  1. ArrayList 和 LinkedList 的区别与使用场景?

    • 答案点:ArrayList 基于数组,随机访问快,插入删除慢;LinkedList 基于双向链表,插入删除快,查询慢。
  2. HashMap 和 ConcurrentHashMap 区别?后者如何线程安全?

    • 答案点:前者线程不安全,后者基于分段锁(JDK7)或 CAS+Synchronized(JDK8)实现并发安全。
  3. 线程池的创建方式及原理?

    • 答案点:ThreadPoolExecutor,核心参数解释、任务队列、拒绝策略等。
  4. Lock 的底层原理及与 synchronized 的区别?

    • 答案点:Lock 可中断、可限时、公平锁支持;底层基于 AQS 实现。
  5. synchronized 的锁升级过程?

    • 偏向锁 → 轻量级锁 → 重量级锁。
  6. sleep 和 wait 的区别?

    • 答案点:sleep 不释放锁,wait 释放锁,wait 必须在同步代码块中。
  7. 原子类如何实现原子操作?

    • 答案点:底层使用 Unsafe 类,依赖 CAS 实现。
  8. ThreadLocal 的原理与内存泄露问题?

    • 答案点:每个线程维护 ThreadLocalMap,key 是弱引用;未清理容易泄露。
  9. 红黑树、B树、B+树 结构和区别?Java 中的应用?

    • 红黑树:TreeMap;B+树用于数据库索引;顺序访问只用叶子节点。
  10. MySQL 存储引擎?Memory 引擎特点?

    • MyISAM 不支持事务;InnoDB 支持事务、行锁;Memory 存储在内存中,基于哈希索引。
  11. MySQL 联合索引优化:最左匹配、等值与范围查询?

    • 答案点:索引列的使用顺序会影响能否命中联合索引。
  12. MySQL 锁机制?

    • 行锁、表锁、意向锁、间隙锁(Next-Key Lock)。
  13. 事务的四大特性与 MySQL 实现?

    • ACID:原子性、隔离性、一致性、持久性;通过 undo/redo 日志 + MVCC 实现。
  14. Spring 如何解决循环依赖?三级缓存作用?

    • singletonObjects、earlySingletonObjects、singletonFactories,三级缓存机制。
  15. 手撕算法题:给字符串中最大字符后加“(max)”

    • 示例代码(示意):
    public String markMaxChar(String s) {char max = 0;for (char c : s.toCharArray()) {if (c > max) max = c;}return s.replaceAll(String.valueOf(max), max + "(max)");
    }
    

✅ 二面题目逐题整理与解析:

  1. Java 中为什么要设置字符串常量池?优势?

    • 节省内存,提升效率,String 属于不可变对象,可复用常量池中对象。
  2. 序列化与反序列化的过程?

    • ObjectOutputStream/ObjectInputStream,Serializable 接口。
  3. 有序的 Map 类型?如何实现?

    • TreeMap(基于红黑树),LinkedHashMap(基于链表维护顺序)。
  4. 线程池满了之后任务如何处理?拒绝策略?

    • AbortPolicy、CallerRunsPolicy、DiscardPolicy、DiscardOldestPolicy。
  5. 线程执行异常怎么办?任务丢失怎么避免?

    • 提交前 try/catch 捕获,设置 UncaughtExceptionHandler,自定义 RejectedExecutionHandler。
  6. JVM 中对象被 GC 的条件?

    • 可达性分析,弱引用、无引用关系等;GC Roots 起点。
  7. SpringBoot 常用注解?

    • @SpringBootApplication、@RestController、@EnableAutoConfiguration、@ComponentScan、@Configuration 等。
  8. MySQL 索引原理?什么时候回表?什么时候索引失效?

    • 回表:覆盖索引无法满足 select 字段时;失效:like ‘%a’、函数包裹字段、or 混用等。
  9. MySQL 修改单行记录时的锁机制?

    • Next-Key Lock 行锁/间隙锁,涉及 MVCC 乐观锁/悲观锁理解。
  10. 问到分布式锁:如何实现?Redis/Zookeeper?ZK 原理?

  • Redis setnx + 过期时间;Zookeeper 利用临时有序节点 + watcher 实现锁机制。
  1. 系统上线后卡顿如何排查?
  • 从 JVM、GC、线程 dump、慢查询、接口响应时间、调用链等角度排查。
  1. 系统查表慢,不止数据库,该怎么优化?
  • 分析链路瓶颈,缓存预热、慢 SQL、IO 延迟、网络延迟、负载均衡等。
  1. 是否做过压测?(没有)

  2. 实习收获?

  3. 反问业务是否涉及信息安全?结果被反问网络安全与加密算法 😅


🧠 总结 & 面试复盘:

一面能基本应对,虽然有卡顿但还能接住;二面加压之后暴露了知识点的“理解盲区”和“记忆边界”问题,像线程池异常处理、分布式锁底层、GC 等场景性题目都属于实战积累不足导致。

📌 建议补强方向

  • 线程池全流程 & 源码级别掌握
  • MySQL 索引失效、锁机制、事务隔离级别再深入
  • JVM GC 触发条件和对象存活判断
  • 分布式锁 & SpringBoot 核心注解体系记牢
  • 系统优化 & 排查技巧需通过实战训练补足

🎯 如果你也在准备 Java 实习/社招,可以点赞+留言交流,我会继续整理类似的高频面经 + 项目思路拆解,希望大家都能稳稳上岸!

http://www.xdnf.cn/news/164881.html

相关文章:

  • MIL、SIL、HIL与Back-to-Back测试详解:从模型到硬件的完整验证链
  • ultralytics 目标检测 混淆矩阵 背景图像 没被记录
  • docker 常用配置
  • 信息系统项目管理工程师备考计算类真题讲解十
  • 数位 DP 详解
  • Python并行计算:2.Python多线程编程:threading模块详解与守护线程实战
  • B3791 [信息与未来 2023] 电路布线
  • c++-模板
  • 2.4.5goweb项目上传到csdn的git仓库
  • 【量化交易笔记】17.多因子的线性回归模型策略
  • 提取office最强悍的软件
  • asammdf 库的文件操作和数据导出:高效管理 MDF 文件
  • 刚体运动 (位置向量 - 旋转矩阵) 笔记 1.1~1.3 (台大机器人学-林沛群)
  • 职场十二法则-马方
  • AnimateCC教学:元件旋转当中平移
  • 桥接模式(Bridge Pattern)详解
  • 从OpenAI收购实时数据引擎揭示AI数据库进化方向
  • ARM架构的微控制器总线矩阵仲裁策略
  • Java基础语法10分钟速成
  • JAVA:线程安全问题及解决方案
  • Centos7系统防火墙使用教程
  • 【JavaScript】自增和自减、逻辑运算符
  • 五年经验Java开发如何破局创业
  • L1-5 这是字符串题
  • # **DeepSeek 保姆级使用教程**
  • Redis数据结构SDS,IntSet,Dict
  • Java—— 五道算法水题
  • 强化学习基础
  • Python AI图像生成方案指南
  • Axure疑难杂症:全局变量典型应用及思考逻辑(玩转全局变量)