滴滴面经

Free Talk

上周六内推了滴滴的成都部门,周三下午HR联系我,约了周四早上 11 点面试。滴滴是面试的第一家大厂,为了这次面试又焦虑地准备了两周。

滴滴一面

自我介绍和项目介绍

Java 基础知识:

  • 集合类:ArrayList、LinkedList、HashMap、ConCurrentHashMap、HashTable、Collection.SynchronizeMap(八分钟)
  • CAS、Synchronized
  • 有没有遇到过解决并发的问题?(没答出)
  • == 与equals的区别、HashCode、整型对象Integer比较用哪个
  • Object类有哪些方法(没答好,HashCode、wait、notify)
  • 重写和重载的区别
  • JDK1.8 的 Stream 的新特性(不了解)

MySQL :

  • Server层、引擎层
  • 索引选择问题(数组、链表、二叉搜索树、平衡二叉树、红黑树、B树、B+ 树)
  • 索引优化:建索引字段要怎么考虑(explains、force index、analyze table 、随机查找、联合索引、最左前缀匹配原则,索引下推)
  • 性格字段适合建索引嘛?(没答好,性别区分度不高)

Redis :

  • 为什么使用Redis, Redis 的英文介绍, 高并发,高性能

Linux:

  • Linux 下的常用命令(没答好)

项目相关 :

  • Spring 的事务传播机制(不会)
  • Mybatis 相关知识,¥ # 的区别(不会)
  • JWT(HTTP、Cookie、Session、JWT)
  • Shiro(Subject、SecurityManager、Realm、执行过程)
  • 异常处理机制怎么操作

设计模式 :

  • 单例模式(开IDE 手写 DCL,加解释 volatile)
  • 工厂模式

一面总结

基本上准备的都答出来,自己还是比较满意,面试官是个漂亮小姐姐,面试过程也非常 nice 。因为面试的时间比较长了,就手写了一个DCL, 没有写其他算法题。面试官说她已经给我过了,之后 HR 会联系我,建议我平时多写一些代码。面试和我讲这边是橙心优选,加班比较严重,业务都是新的,挑战比较大。

滴滴二面

明显感觉二面的面试官技术强了很多,一看头发就是资深程序员

一开始是自我介绍(个人网站讲解),然后问了线程池(讲了 Java 线程模型、线程池的几个参数(原理)、拒绝策略)(6分钟)

HashMap 死循环问题(从1.7 扩容,头插开始讲,到 1 .8 尾插,遗憾的是没有举出一个例子)(5 分钟)

Synchronized 和 ReentrantLock(从对象头开始讲,moniter,作用于代码块,方法;AQS,CAS,入队规则;两者的使用比较)(5 分钟)

SQL 语句书写(开 IDE,还好昨晚临时练习了一下,都写出来了)(10 分钟)

写一个支付最少数量的纸币的付钱算法(写是写出来了,但是好像算法不太好,用了三个循环,但是复杂度其实不高)(10 分钟)

二面总结

感觉二面的面试官比较随意,就是想问啥就问啥,同时喜欢问偏底层一点,面试官说结果要两天左右通知我,他还要和第一个面试官讨论一下。我总觉得他对我不太满意,但是我基本上都回答出来了,就是可能回答的不够深入吧。希望自己能够拿到这个 Offer 吧。