滴滴面经
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 吧。