一面
1.自我介绍+介绍项目
2.项目中难点及解决办法
3.Java线程的状态及转换
4.Java创建线程的方式
5.创建线程池的方式有哪些
6.JUC包下的类,能说多少说多少
7.ReentranLock与sychronized的区别
8.volitile的内存语义,底层如何实现
9.解释一下happens-before,有哪些规则
10.CurrentHashMap源码
11.MySQL的索引及区别
12.算法题:顺时针打印矩阵
二面,深挖项目为主
1.介绍项目,项目中的难点(15min)
2.MySQL是如何优化的,数据量有多少
3.倒排索引与正排索引的区别
4.ElasticSearch的原理(倒排索引+TF/IDF)
5.Zookeeper用过吗,介绍一下
6.Zookeeper一般用在什么场景
7.除了ZAB协议,在介绍几个分布式一致性协议(Paxos、Raft)
8.线程池的几种拒绝策略及其应用场景
9.大数据框架有哪些
10.LSM-tree应用在那些场景、优缺点
11.意向工作的方向?大数据or开发
12.写SQL:查询每个班级成绩排名前五的学生及成绩
三面,聊人生
1.你对滴滴有什么了解,知道我们的技术栈吗
2.你心中的top3公司(送命题)
3.你意向的工作方向?大数据or开发
4.还有几个问题不记得了~
四面
1.自我介绍,项目提问
2.Java集合类常用哪些,ArrayList与LinkedList区别;HashMap底层实现,为什么扩容是2的幂次;如果想要线程安全该怎么用
3.JUC包下对哪些类了解,synchronized和JDK提供的锁区别;CAS原理,ABA问题;锁升级过程讲一下;volatile讲一下,为什么不能保证原子性
4.JVM内存模型,新生代有哪些区,作用是什么;如何判断对象是否可以被回收(1引用计数2可达性分析)
5.JVM常用垃圾回收算法,讲一下CMS原理
6.Redis常用数据结构;有序集合底层实现;查找排名在底层如何实现;如何用Redis实现分布式锁,可能遇到的问题和解决办法
7.手撕一个二分查找
五面
1.自我介绍,项目提问
2.聊计网,TCP3次握手过程,第三次是否可以携带数据,如何避免SYN攻击(syncookies);TCP四次挥手说一下,为什么要等待2MSL,第二次和第三次挥手是否可以合并(可以)。
3.操作系统,进程、线程和协程的区别;如果创建很多个线程会有什么问题;进程间通信方式有哪些
MySQL索引如何实现,为什么用B+树不用B树二叉树;聚簇索引和非聚簇索引的区别;平时索引优化如何做,最左匹配原则;
4.你的优点,你的缺点(面试官说我们缺点一样)
5.你最近看的技术书籍,我提到《Java并发编程的艺术》看了三遍,面试官让我详细每一章讲了什么
6.你对互联网行业怎么看
7.如果你的绩效被打了C你会怎么办 (这个是一个很大的坑~)
验证码登录>
验证码登录>
自动登录 | 忘记密码?
密码登录>
自动登录