2020-09-30 蘑菇街一面凉经

介绍一下背景吧,本人非科班,硕士普通211

2020-09-30 一面 凉经 30min
面试官挺友好的,但是本人还是太菜了🤣,准备了很多面经知识点,但是对于场景问题还是提不出自己的见解

1. Map接口有哪些实现类? 第一个问题太紧张,说了HashMap,ConcurrentHashMap,WeakHashMap,IdentityHashMap。忘了LinkedHashMap,而且竟然说了HashSet,太菜了,面试官都愣了一下
2. 对于线程不安全的Map,你会怎么实现保证它线程安全? 就仿照HashTable讲到了锁,然后面试官就开始问锁了
3. 老面经题了:ReentrantLock和Synchronized锁有什么区别? 就按照常规的答了一通
4. ReentrantLock锁是可重入的,那Synchronized锁是可重入的吗?
5. ReentrantLock锁怎么实现可重入的? 太久没看,忘了
然后按照简历问换话题
6. 你熟悉Redis吗,答熟悉,那你讲一讲数据库和Redis缓存怎样保证数据的一致性? 讲了常见的策略,读操作先从缓存中读,如果缓存中不存在再从数据库中读,写操作先写数据库,然后删除缓存中数据
7. 面试官开始质疑了,那你说先写数据库,然后删除缓存,那我现在有两个问题,你怎么解决?
① 那删除缓存这一步操作失败了怎么办? 答:将删除操作加入到一个消息队列中,隔一段时间后重新尝试删除操作
② 先更新db,在删除缓存之前,有线程可能会从缓存中读取到旧数据,你怎么解决这个问题? 这个怎么解决,有没有小伙伴给个思路?
8. MySQL的事务介绍一下ACID?
9. 因为我简历写了Spring相关,然后就问到Spring框架如何实现AOP,然后答了一波JDK动态代理和CGLIB动态代理。然后分析了JDK只能代理实现接口的,CGLIB不能代理final关键字修饰的类。然后面试官就问那现在有一个类没有实现接口,并且有final关键字修饰,你怎么实现动态代理?  这个真的一脸懵逼,不知道了
10. 因为我项目是临时造的一个仿Spring的轻量级web框架,面试官就问你的框架如何避免循环依赖问题?但我并没有实现,准备答Spring如何做的,被面试官叫停

然后其他的问题就是问道懂不懂RPC框架,mybatis的#和*有什么区别,RPC没复习,mybatis的因为复习周期太长了,忘了 🤣

总结,还是自己项目的相关场景和在面经上延申的场景设计问题的应对能力太差了

#蘑菇街##面经##校招##Java工程师#
全部评论
增删改操作先去Redis中判断有没有对应的key,有的话先删除Redis中的数据,再去数据库中更新,更新完成之后保存一份到Redis中
2 回复
分享
发布于 2020-09-30 21:38
是因为是硕士吗   咋问的这么深😂
点赞 回复
分享
发布于 2020-10-13 23:20
滴滴
校招火热招聘中
官网直投

相关推荐

3 16 评论
分享
牛客网
牛客企业服务