快手Java实习(研发效能)一面
我也不知道研发效能是啥玩意,投的时候只看到这个所以就投了
后来看了岗位简介才知道全是DevOps、CI/CD这些我不懂的东西
2022年3月22日 14:00 1h
1、自我介绍
2、Java集合类有哪些
3、你说到了Map,那Hashmap的初始容量是多少?
4、Hashmap是怎么put一个值的?
5、Hashmap的hash计算、有了解过吗?为什么Hashmap会有并发问题?
6、场景题:你也提到JDK1.7Hashmap有扩容的并发死链问题,你会怎样去解决多线程下它的扩容安全问题?(答的加锁、CAS这些常规方案,还说了可以提前算好容量避免反复扩容)
7、有没有其他的解决方案?(没有想到,后来面试官引导我说既然知道了hash的计算方法,就可以把这个hash计算过程由工作线程自行完成,计算好要插入的下标后由一个单独的线程完成对应的插入工作(虽然感觉意义不大,但是确实减少了上下文切换))
8、Synchronized是怎么向操作系统申请一个锁的?(Monitor/Mutex)
9、Synchronized的优化、锁膨胀过程
10、ConcurrentHashMap了解吗?(说了AQS和一些和Syn不同的地方)
11、AQS原理(详细问了状态位、CLH队列)
12、你提到了CAS,那CAS是什么,底层原理是什么?(跟他扯了指令集支持、原子操作)
13、如果我有一个接口要去请求其他厂商的4个接口,必须等待返回结果,你会使用什么什么方法(CountDownLatch)
14、Semaphore和CyclicBarrier的区别
15、如果我有一个接口要执行翻译工作,需要去调百度、有道等等的翻译API,但只需要有其中一个的结果怎么处理(答的CompletableFuture的API,Future可以只同步等到某一个线程有返回结果,面试官问还有没有解决方法)
16、接上:说用Map存储返回结果,面试官提醒这个接口跑太久会有内存泄露的问题,如果要去实现淘汰机制又增加了额外的工作量,最后问我用阻塞队列可不可以实现。
17、NIO是什么?poll/epoll/select有什么区别?
18、Netty相对于NIO有什么升级?
19、Nacos相对于其他的注册中心有什么优势?(跟他扯了一些AP/CP,然后说到了心跳)
20、Nacos的心跳机制比别的注册中心好在哪里?(不知道,就告诉他有很多选择HTTP、keepAlive、DNS这些,最后他告诉我他想问的是Nacos的随机心跳机制来避免分布式系统脑裂)
21、问项目:主要问了秒杀的并发控制,我说我是单机Redis做的信号量,他说工作肯定不行,单机根本顶不住流量,问我多机解决方案(关于秒杀时Redis主从数据同步问题,答不出来,说的方案他都说不行,问我知不知道Raft算法,最后告诉了我他的解决方案,很复杂,此处就不描述了)
22、算法:接雨水(用的单调栈,数据结构用的LinkedList,但是自己调试运行一直报NoSuchElement,最后面试官说算了,他们这个平台用的JDK7,LinkedList没有getLast()方法,让我讲了一下思路)
23、反问(技术栈、评价)
总体来说快手的面试体验感还是很不错,很会引导,问题比较有层次,也不是纯问八股,会反复跟你讨论应用场景和解决方案。
#实习##面经##快手##java工程师#