百度提前批-一面面经-上海java研发
楼主是双非学校,提前批刚开放就投了,今天进行的视频面试。总时长1个小时,手写了一个单例(饿汉+懒汉)还有一道算法题,一共花了一个小时。
1.首先进行自我介绍,介绍完就开始问项目了。(项目是一个电商秒杀)
2.说一下你的项目中用到的组件,以及用途?
3.刚才听你说Redis,说一下都有哪些数据类型?
4.知道Redis的sort set数据结构如何实现的么?(不会)
5.没关系,说一下sort set的应用场景?(感觉面试官特别好,上一个不会就问了这个简单的问题)
6.你的项目中用到了MQ,都知道哪些MQ以及项目中为什么用RabbitMQ?
7.RabbitMQ的几种模式?
8.主题模式什么时候用(介绍的不是很好,让后我补充介绍了一下路由模式)?
9.知道RabbbitMQ如何搭建集群么?(说的因为条件限制没有搭过,让后面试官就没有追问了)
10.项目中用Redisson实现分布式锁,你知道用Redis如何实现分布式锁么?
11.还有哪些能实现分布式锁?(我说了zookeeper,让后又问了各自的优缺点)
12.项目中的Canal如何保证数据一致性的?
13.项目中的SpringCloud核心组件用了哪些?
14.让后问我项目中的Lua脚本你会写么?(我说只会一点简单的语法,让后巴拉巴拉~)
项目一直问到这里,让后就开始java了。
15.说一下你知道的GC回收算法?
16.说一下垃圾回收器?
17.CMS和G1详细介绍一下?
18.现在JDK用的是什么垃圾回收器?(不知道)
19.Redis中的超时的key是如何清除的用的什么算法?(不会,我补充说了一下Redis内存溢出后用的什么算法清理)
19.TCP如何实现拥塞控制的?(没答上来,让后问了一些tcp的简单问题)
20.说一下乐观锁如何实现数据同步的?
21.说一下你知道的sychornized?
大概就想起来这么多问题了,让后就问我单例模式,手写懒汉和饿汉。
算法:有三种颜色的小球,分别代表0(红色),1(白色),2(蓝色),打乱顺序,放在数组中,让后整理将所有的0放到左边,所有的2放到右边,所有的1在中间(应该是剑指offer上的题)
1.我说快排,面试官说时间复杂度太高了,有没有O(n)的时间复杂度的?
2.我说用一个长度为3的int[] 数组计数,面试官说有没有不需要额外的空间只通过交换就可以实现的?
3.我说应该需要双指针吧,面试官说对,往这方面想,但是没想到如何实现,在面试官的再三指引下才写出来。
最后反问(巴拉巴拉)
----------------------
总体感觉面试管非常好,很多问题没有回答上来,面试官就会换一个简单一点的问题问我。
今晚上7点多的时候收到了二面的通知~~~