快手记录的面试题2

作者:牛客196631657号
链接:https://www.nowcoder.com/discuss/406081?type=post&order=time&pos=&page=1&channel=&source_id=1
来源:牛客网

笔试

总体来说难度比美团低很多,前三道题都不算很难,只有最后一题大概是leetcode的hard难度(当时写了个模拟流程AC40%粗滚)

面试忘了录音了,说下我能记住的

一面,大概30分钟

自我介绍

说说Spring AOP

说说Java的GC机制,讲讲G1

类加载过程,双亲委派模型的优缺点

讲讲hashmap

kafka了解么,说说你对他的理解

说说聚集索引和非聚集索引,mysql的4种事务隔离级别,InnoDB在Repeatable_Read下为什么不会幻读,索引为什么用B+树,B+树和B树的区别

你认为写代码过程中最重要的是什么

设计一个秒杀系统

开放题:井盖为什么是圆的(我一直以为这是个段子,结果真问了)

算法题:对一个不递减数组进行一次旋转操作的结果,查找数组中的数

就是对类似于[4,5,6,1,2,3]这样的数组,进行查找(二分)

二面,大概50分钟

自我介绍,又聊了一会儿项目

说说Spring IoC机制,以及实现原理

讲讲你熟悉的Java设计模式,知道装饰者模式吗,IoC机制符合了Java设计模式的什么原则

多个线程同时对volatile类型的变量进行i++操作,可以保证结果吗,为什么不能,说说volatile的原理,那我们在什么时候使用volatile是正确的,刚才的场景怎么保证结果(synchronized),说说sync的原理,它和ReentrantLock有什么不同

讲讲AtomicInteger的实现原理,Atomic开头的类经常会有一个方法叫lazySet,讲讲它的作用

讲讲java中的集合类,Comparable接口和Comparator接口

说说线程池的工作流程,4种拒绝策略,4种队列,其中一个线程挂掉了会怎么样

算法题:表达式求值,“10+8*3-3*2-5”(双端队列)

原文地址:https://www.cnblogs.com/lzh1043060917/p/12851018.html