转载声明:文章来源:https://www.nowcoder.com/discuss/522173823144165376
1、自我介绍;
2、介绍项目;
3、问项目:
场景1:注册时并发怎么解决?
场景2:项目哪里用了缓存处理,是否会出现数据不一致问题?QPS多少?怎么测得?项目上线了吗?
场景3:双十一这种高并发情况下,一个页面频繁被访问,如何从将这个缓存到不同的Redis服务器中,这里面试官给了提示,按IP设置key,我回答的是根据不同地区IP设置key,缓存到不同服务器。
4、分布式下Java的锁还能使用吗?
5、有哪些分布式锁实现?
6、怎么解决并发问题,具体什么场景我忘了,然后我说可以使用悲观锁和乐观锁,问我Java有哪些锁、悲观锁,我说synchonized,瑞安吹Lock,AQS,其他的几个AQS相关锁我不会读,哭死我了;问我AQS实现原理;
7、问自己的学习规划,以后对Java的学习,包括以前看过哪些java相关书?
8、JVM内存区域?
9、线上一直进行老年代垃圾回收什么原因,怎么进行排查,如何解决,卡顿如何找出原因?
10、TCP三次握手四次挥手?
11、冒泡排序算法,讲解思路。
12、手写单例模式,我写了饿汉式双重校验单例模式,问我为什么进行第二次非null判断,除了我这种还有其他单例模式吗?我说还有饱汉式,但是线程不安全。问我如何实现线程安全单例模式?
13、MySQL查询很慢是什么原因?如何加速?我回答使用explain,建立索引。追问为什么建立索引?把索引执行过程说了一下。
主要就是上述这些问题,其他的忘记了,最后和面试官疯狂道歉,但是面试官人很好,表示理解。今天是一次愉快的面试,全程大概一个小时,一直打电话问我,只有写单例模式使用电脑了,无论结果咋样,都是一次宝贵的经验。昨天的笔试也真的难,我反问环节问面试官业务方向,说的和第三题基本一模一样。说周一会和部门内部讨论结果。
以上就是今天面试过程,嗯,比较独特的一次面试经历吧,对自己的一次检验。
帖子还没人回复快来抢沙发