字节生活服务Java后端面经
1 自我介绍?
2 介绍一下你这个项目?这个项目从哪来的?github吗?是自己做着玩的没上线是吗?你没有实习过?是因为什么原因没有去实习?你擅长的是java是吧,那我问你点java的基础
3 介绍一下gc及垃圾回收器?你认为这些算法到底有什么区别?你认为为什么要分新生代老年代?新生代老年代分别用的什么算法?那为什么要这么设置呢?
4 你知道CAS和AQS吗?他们到底是什么原理,什么应用场景介绍一下,越详细越好。
5 请问有序性,可见性,原子性他们分别都指的是什么?以及到底怎么实现?volatile关键字能不能实现以上三种性质?i++是原子性的吗?如果要实现原子性怎么做?
5 你知道redisson里面的锁是怎么来防止误删以及过期时间怎么实现的?唯一性又是怎么实现的?你说用到了看门狗机制,那请问它是怎么知道当前的锁还是被持有的?如果现在a线程只有一个锁,但是他宕机了,包括看门狗这些全部都死掉了,然后现在线程b持有了这个锁,结果线程a又恢复了,并且执行了释放锁的动作,导致b的锁被释放了,这种怎么来处理呢?那它的底层又是怎么能保证别人不会释放自己的锁的?自己又不会释放别人的锁的?
6 我看你简历上说MVCC,你给我说说什么是mvcc?(面试官说我答的太浅了,说我只提到了MySQL的 我也不懂💔并且后面反问环节说我这一点答的他不太满意)
7 问句题外话,你这是自学的吗?你自学的是怎么来学的?从哪获取到这些知识的?我感觉你掌握的还是非常透彻,所以想问一下你觉得这种理论知识在项目中你有没有真的用到?
8.手撕A:现在有一个非递减的数组,里面有两个值加起来会刚好等于target,请你以最高效且最低空间的方式找到这两个值的索引。
手撕B:合并重叠区间
8 再问一句题外话,你现在手里有offer了吗,意向是想留在成都吗?