8.1(60min)
0、自我介绍
1、介绍一下你在Java中常用的集合类,以及其继承关系
2、线程安全的集合类用过哪些?列举了5个
3、提到了BlockingQueue,讲一下原理
4、讲一下HashMap的put和get的底层原理(扩容相关、扰动相关,巴拉巴拉)
5、讲一下ConcurrentHashMap在1.7和1.8的底层原理
6、讲一下CopyOnWriteArrayList底层原理
7、讲一下输入www.baidu.com到页面显示发生了什么?
8、详细介绍一下TCP三次握手
9、场景题:如果我要建立一个投票,有海量用户(上亿)要参与投票,但是每天每个用户只能投票一次,你会怎么设计?(使用redis)
10、使用redis用来干什么?(二级缓存、分布式锁)
11、MySQL中有哪些索引?分别用于什么场景?
12、讲一下为什么使用B+树作为索引,从B树、二叉平衡搜索树讲起
13、联合索引a b c,给了大概6 7个sql问我分别能走哪些索引?
我能记得的大概有:(这块儿没回答好,我说IN不能走索引,现在想想我想说的应该是函数走不了索引,IN不算函数吧)
(1)、a=1 and b>=2 and c=3
(2)、a=1 and b>=2
(3)、b>=2 and c=3
(4)、c=3 and a=1
(5)、a=1 and b IN (2,3) and c=4
14、Spring如何解决循环依赖问题?
15、使用过哪些数据库调优的手段?(答曰explain分析慢SQL)🤣就不该作死写熟悉MySQL调优
16、项目中如何找到慢SQL?
(答曰:MySQL中打开慢SQL记录的开关,可以用SQL语句找到慢SQL log;在项目组使用sentinel做请求和响应的分析统计,并解析log找到慢sql)
17、 算法一道简单题(硬是玩出花了):给一个int,判断是否是回文的,如121就是回文,-121就不是,10也不是
第一开始脑子钝了,写了个双指针逼近,面试官说不是最优,我寻思我这O(n)的时间,O(1)的空间,还不行...
然后换栈实现,写完后,问我还有没有其他思路,于是我苦思冥想,愣是换了4种思路做这道easy🙃
结束之后,面试官为我总结了我面试中表现出来的不足,告诉我下去再看看,这一点非常nice!然后告诉我今天约不了二面了,等HR通知找其他时间二面吧
(我看其他大佬都是连上面试的,可能是我太菜了,达不到连上面试的级别)
-------------------------------------------------------------------------
更新一下二面情况 8.6(40min)
0、自我介绍
1、聊我简历里的项目
2、写一道算法题:解析log
格式:2020-08-06 20:00:00 123 https://www.kuaishou.com
第三列是访问的学生ID,要求统计每个学生的访问次数
3、问HashMap底层
4、聊天
5、反问
感觉应该是部门leader,面试官人很好,还给我介绍部门的情况和氛围
最后许愿offer,嘿嘿
全部评论
(7) 回帖