拼多多二面 (暑期实习)0517
本来有回答思路方便你们看懂为啥这么问,但超字数限制,作罢。有删改问法,否则超字数。面试官很温和甚至温柔,答错了也会引导你,不会也会提示,还不会也不会说什么。
1.自我介绍
2.ArrayList是线程安全的吗?
为什么不是?
只要不用锁修饰就不是吗?
如果不用CAS或版本号,他也一定不是线程安全的吗?
所以ArrayList是否是线程安全的应该怎么说?
3.不是线程安全的会带来哪些问题?
为什么会丢失修改?(重点:自增不原子)
4.线程状态和切换。
等待和阻塞状态的区别?
(引导回答不同状态之间的切换)
5.HashMap是怎么查找的?
链表不是O(n)查询吗,为什么哈希表是O(1)?(不知道在问啥)
这么问吧,链表有特别多的元素,会O(n)查询吗?
扩容因子?计算公式?
6. Mysql,基于索引的SQL优化,实际经验?
(引导过程:联合索引?索引类型?sql语句?InnoDB引擎的底层数据结构?存储方式?)
7. 聚簇非聚簇索引?回表查询?
8. 先用链表实现栈,然后再实现线程安全。
(实现后)怎么实现线程安全?(我逃避,我直接说加锁,synchronized)
对,很简单,我们也不考这个了,你之前说了乐观锁实现,那你能不能用CAS实现一下线程安全(不会)
提供个思路来解决试试?(拉扯开始)
(完全忘了面试一开始的问题面试官提示了原子操作。)
嗯。。。。你知道atomic类吗?
那你试着实现一下?(交代没用过)
9.嗯,你知道什么是阻塞吧?
你用wait方法实现一下?(交代没试过不清楚)
(已经55min了)
10.时间差不多了,那你项目中还有什么难点吗?(吟唱redlock)
(听我吟唱完)那加锁的原理是什么?
哦~(面试官想了一下)复现出来过吗?(?没想过这么问)
那你怎么解决的?(主从集群存在的问题然后提前避免)
嗯,你说的都是极端情况,如果在实际开发中,我们存在这个问题,但我们无法复现出来,那是不是就意味着这个问题即使解决了,也不知道效果如何,就可能会花费很大的人力精力,却得不到成果
怎么构造测试用例?(Thread.sleep然后宕机)
11.反问:
如何复现,测试用例?(一样)
看门狗释放了锁呢?(对,控制时间)
所以项目的优化一定是建立在能够复现出来的基础上,并能检测优化后的结果吗?(没错)
改进?(实习生勉强可以,要求会低,应届生差一些)
1.自我介绍
2.ArrayList是线程安全的吗?
为什么不是?
只要不用锁修饰就不是吗?
如果不用CAS或版本号,他也一定不是线程安全的吗?
所以ArrayList是否是线程安全的应该怎么说?
3.不是线程安全的会带来哪些问题?
为什么会丢失修改?(重点:自增不原子)
4.线程状态和切换。
等待和阻塞状态的区别?
(引导回答不同状态之间的切换)
5.HashMap是怎么查找的?
链表不是O(n)查询吗,为什么哈希表是O(1)?(不知道在问啥)
这么问吧,链表有特别多的元素,会O(n)查询吗?
扩容因子?计算公式?
6. Mysql,基于索引的SQL优化,实际经验?
(引导过程:联合索引?索引类型?sql语句?InnoDB引擎的底层数据结构?存储方式?)
7. 聚簇非聚簇索引?回表查询?
8. 先用链表实现栈,然后再实现线程安全。
(实现后)怎么实现线程安全?(我逃避,我直接说加锁,synchronized)
对,很简单,我们也不考这个了,你之前说了乐观锁实现,那你能不能用CAS实现一下线程安全(不会)
提供个思路来解决试试?(拉扯开始)
(完全忘了面试一开始的问题面试官提示了原子操作。)
嗯。。。。你知道atomic类吗?
那你试着实现一下?(交代没用过)
9.嗯,你知道什么是阻塞吧?
你用wait方法实现一下?(交代没试过不清楚)
(已经55min了)
10.时间差不多了,那你项目中还有什么难点吗?(吟唱redlock)
(听我吟唱完)那加锁的原理是什么?
哦~(面试官想了一下)复现出来过吗?(?没想过这么问)
那你怎么解决的?(主从集群存在的问题然后提前避免)
嗯,你说的都是极端情况,如果在实际开发中,我们存在这个问题,但我们无法复现出来,那是不是就意味着这个问题即使解决了,也不知道效果如何,就可能会花费很大的人力精力,却得不到成果
怎么构造测试用例?(Thread.sleep然后宕机)
11.反问:
如何复现,测试用例?(一样)
看门狗释放了锁呢?(对,控制时间)
所以项目的优化一定是建立在能够复现出来的基础上,并能检测优化后的结果吗?(没错)
改进?(实习生勉强可以,要求会低,应届生差一些)
全部评论
佬有无后续
没有手撕吗
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享