转载声明:文章来源https://www.nowcoder.com/feed/main/detail/4805b51d3cb44e6187486fd77a98efec
timeline 5.26笔试——5.30一面——6.7二面——6.14三面(已约hr)
之前面完以为是kpi所以没有记录太多,只能回忆一些印象深刻的问题。
一面
1. 手撕:选出前 k 大的数 —— 用快排的partition或者最小堆都能做
2. 解释下 Java 面向对象的三大特征?
3. 多态具体的实现?
4. 反射的机制?
5. 数据库和缓存如何保持一致性?—— 先更新数据库,再删缓存
二面
项目+常规JVM计网数据库八股拷打
1. HashMap底层原理,是否线程安全
2. ConcurrentHashMap怎么保证线程安全
3. 印象最深的是给了两段代码:
一段 synchronized 标记方法声明,一段在方法内部 synchronized(this),然后这两个方法执行起来是什么情况
正确思路:都是一样的,都是在对象层面给当前实例对象上锁
手撕:k个非递减数组,找出在所有数组中都出现的数
思路:k个指针分别指向数组开头,比较各个指针的数组值,全部相等就记录,否则除了最大值对应指针不动,其他指针都二分往前移到大于等于当前最大值的第一个位置
三面
还是拷打项目,然后就直接反问
ps:实习生真的要干6天,部门10 10 6