# 滴滴面试:
我先定个基调,吹吹滴滴的面试体验,全程都有引导,然后都是笑嘻嘻的,最后的面试官感觉是boss,但是也超级nice。
## 一面
项目的基本介绍
java的四大特性,多态实现的四大基本实现(面试官说的:向上转型??)
线程池的7大参数,四大拒绝策略
常见的IO模型,同步和异步的区别,阻塞和非阻塞的区别,异步有没有阻塞,
线程池的基本介绍
线程池提交的方式,哪个是对应callable
索引的类型与为什么使用b+树
索引失效的场景
三次IO查询所能查到的数据量是多少
为什么新生代用的是复制算法,老年代是整理算法
tcp的三次握手和四次挥手,如果服务端的fin没有会发生什么问题
2msl
可重复读的实现方式
sleep wait
垃圾收回的方式,运行时数据区的分区,介绍下有哪些垃圾收集器
## 二面
项目介绍:主要是自己研究生阶段的项目介绍,一般是一边问一遍检索自己的文章技术关键点,我把文章的算法核心部分给阐述了一遍(6min)
还有个大数据的比赛的介绍(3min)
java的四大特性,多态的实现的好处,重载重写,向上转型
接口和抽象的定义,区别,单双,继承,接口可以实现方法,默认和static
创建对象的方式,什么时候使用序列化
直接引用和间接引用
强软弱虚的介绍,为什么要提供不同的类型,
深拷贝和浅拷贝的区别
实现线程阻塞的方法,wait,sleep,park,suspend,还有个join忘记了
sleep和wait的区别
suspend和resume
死锁的条件,如何进行破坏
cas的问题,三个(ABA,cpu,不能比较数组)
countlatch与cycliabarrier的区别
如何保证i++的原子性
voltile的原理,
hashmap的并发问题
weakhashmap
快速失败和安全失败
throw与throws的区别
分治的应用场景:topn的海量处理,排序
手写快排:
归并的应用场景:
如何学习新知识
你对滴滴的了解
## 三面
介绍下项目
然后各种的边界条件进行探讨
先口述:实现一个arraylist,put,remove,get
为什么可以实现固定的容器大小,有什么好处
如何实现复制
如何更新
然后写一个demo:用中文
put的实现流程
get的实现流程,维护一个object[]
remove的实现流程
rezise的实现流程
复制是如何实现的,
如果要删除全部相同的数值,如何实现,用O(n)的复杂度实现
loadfactor的在arraylist与hashmap中的不同作用
size的作用,然后就是等通知!!!!
全部评论
(3) 回帖