百度上海JAVA研发校招一面
面试时间挺久,接近一个小时,问的不是特别难,算法题也很简单。不会的的时候会给思路,面试体验还是不错滴。
先介绍了下大家都有的秒杀项目,然后问了几个相关的问题:
1. 订单生成失败,如何回退redis的库存
2. redis的扣减为什么是原子性的
3. redis单线程为什么效率还很高
4. redis的多路复用,select,epoll区别,NIO,BIO,AIO
然后基础题:
1. HashMap,HashTable,ConcurrentHashMap区别,扩容过程
2. 实现一个LRU要怎么写,我说维护一个map,一个双向链表,要求只保存一份数据,就聊到了LinkedHashMap,问LinkedHashMap在HashMap的基础上改了什么,用这个怎么实现。
然后Spring的题目:
1. Spring的IOC怎么实现
2. 循环依赖是怎么解决的
3. 同一个类中的无事务的方法A调用有事务的方法B可以生效吗,为什么。
最后写代码:
1. 写个单例模式,为什么要加volatile,volatile有哪些作用,怎么证明不加volatile会产生指令重排。
2. 参加过算法竞赛吗,没有啊 那就写个简单题。最后写了个搜索二叉树返回第k大,题目很简单,但没说k可能不合法,一开始没考虑这个边界条件,卡了一下。
反问环节:随便问了下
许愿个二面吧