小米广告后端开发实习一面(最燃尽的一集)

面试官人很好,这是我见过最会引导的面试官了
心态崩了,记几个答得不好的,全程1h10min
1、狠狠拷打实习,问有什么难点,如果让你继续优化你的实习工作,你还能做哪些优化。主要是笨人的实习真的挺杂活的, 真想不到有什么难点和可以优化的地方。
2、手撕一个分布事锁工具类,支持加锁和释放锁,要可重入,涉及redis或zk的api可以伪代码,在面试官的循序引导下勉强写完了,但是后来面试官又问如何让一个工具类同时支持redis和zk的加锁和释放锁,写不出来,只说了应该需要工厂模式和spi支持。。。
3、事务是怎么实现的,具体一点,只知道aop,但是还不够具体
4、面试官手写了一个类,问事务生不生效,类似下面这样,记不清了,回答了不生效,问为什么,怎么解决,我说方法A加个@Transactional,面试官继续问,如果不加注解,自己@Autowired注入自己AccountService 可以生效吗?而且这样算循环依赖吗?
public class AccountService {
@Autowired
private Dao accountDao;

@Transactional
public void B {
...
}

public void A {
B()
...
}
5、Redis为什么这么高效?redis单线程模型为什么能高效处理多个请求?
这个事务能生效吗?
6、什么叫循环依赖,如何解决?为什么是三级缓存而不是二级?
7、手撕:二叉树最近公共祖先,继续,如果是二叉搜索树呢?
总结:这次暴露的问题太多了,很多八股只停留在表面,比如@Transactional如何实现事务的,只知道基于 aop,但是 app 干了啥保证事务就不知道了,为什么是三级缓存而不是二级,对于实习没有很好的总结,不知道难点在哪,应该是挂了
全部评论

相关推荐

1.为什么用rabbtmq来做异步。我说都可以,卡夫卡可能并发性能更高,但rabitmq性能比较综合。2.为什么做异步。3.如果发送了重复的消息,你的项目中怎么保证唯一性。(自己做的是一个记录储存,其实唯一性要求不大。但当时害怕项目存在漏洞还是说在业务里判断,然后卡住)4.为什么要用springboot5.问我引入starter是不是就是把对象引进来。(觉得差不多是,但感觉是有问题的,举了个例子扯着说是这样)6.问我用过mybatis,有没有看过框架里的具体对象等(我说没有,就创建xml文件mapper去操作db,没准备mybatis,只知道一个安全问题)7.rabbtmq怎么保证消息不丢失(又回来了,我答rabbtmq自身持久性,消费者的重试以及三种拒绝策略)算法:lru(期间问我hashmap如果key为空返回啥,我说返回null对象,问我可不可以据此修改判断条件,我想说是但又不确定)最后反问环节问自己最主要的问题,给面试官问无语了,说了句基础...就匆匆结束了。感觉凉凉了,但还抱有一丝幻想,自己还是太菜了,看他的招聘要求只写了个中间件,看redis,mysql,se,juc,jvm比较多,有没有懂面试官心理的友友分析一波。而且面试间也是匆匆忙忙找到的,第一次被拷打项目真有些不知所措,自己准备的点其实在另一个并发场景,后知后觉自己没引导好也是。
查看10道真题和解析
点赞 评论 收藏
分享
评论
5
6
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务