快手 Java 后台面经,已意向书
周五晚上收到了意向书
下午 HR 加了微信,说周五会给意向书。
快手提前批只有两面技术面吗,看有的大佬会有三面,是我太菜了吗,感觉我的两面技术面都挺基础的。昨天晚上正在理发,快手 HR 来了电话,9点半竟然还没下班🤣,我当时说不太方便,然后改到了今天上午。
8.8日 14:00 快手一面 57min
之前发过一次一面面经,这次和二面的一起发了
自我介绍
二话不说,先写一个LRU,吭哧吭哧写了二十多分钟,之后面试官给提了一些优化意见。
TreeSet 和 HashSet 是怎么比较元素是否相等的?
Integer 和 Long 的 hashCode() 方法实现有什么区别?
ConcurrentHashMap 原理,1.7 和 1.8 区别。
线程池有哪些参数,执行流程是怎样的?有哪些常用 BlockingQueue,区别是什么?拒绝策略有哪些?shutdown() 和 shutdownNow() 有什么区别?
synchronized 和 ReentrantLock 区别?ReentrantLock 实现原理,AQS 原理,CountdownLatch 和 Semophore 的作用?
ThreadLocal 原理,线程池中使用 ThreadLocal 会有什么问题,为什么?软引用和弱引用有什么区别?
单例模式有哪些实现方式?双重检查锁怎么实现,为什么用 volatile,序列化破坏单例了解吗,怎么避免?
聚簇索引和非聚簇索引区别,sql 语句执行有哪些步骤?
事务隔离级别有哪些?可重复读怎么解决幻读?binlog 有什么作用?
MySQL 存储时间有哪些数据结构?有什么区别?
Redis 想要提交多条命令,但是只有一次 Round-Trip 怎么实现?pipeline 了解吗?持久化方式有哪些,区别是啥?AOF 重写介绍一下,fork 子进程有什么影响?
竟然没有反问环节,有点慌...
8.12 10:00 二面 55min
自我介绍。
final 关键字的用法。
在哪些情况下,变量虽然没有使用 final 显式修饰,但还是被编译器提示不可修改?
谈谈你对 SpringBoot 的理解,主要解决了哪些问题,集成了那些第三方框架?支持哪些数据源?
说一下进程和线程的区别?Java 里的进程和线程是怎么体现的?
基础知识先聊到这里,下面来写个代码:有一张桌子,桌子上有一摞一摞的盘子,每摞盘子的数量是已知的,数量是无序且不等的,现在需要你去挪盘子,通过尽量少的挪动次数,使每个位置上的盘子数量趋于平均,需要你打印出每一次挪动盘子的动作,比如从位置 a 挪到位置 b (a和b是数组的下标),那就打印 a->b。输入是一个无序数组,输出是每一次挪动盘子的过程。这道题写了挺久,加上跟面试官讨论的时间都半个多小时了。
代码先写到这里,我们在聊些别的问题,关于 Java 并发编程,你都了解哪些方面?
Java 最经典的 synchronized 关键字,你了解它的用法吗?
同步代码块中怎么释放锁?Object.wait() 的底层原理是什么?或者说 wait() 和 notify() 的机制在底层是怎么实现的?
JUC 包下常用的锁有哪些?ReentrantLock 中有个 Condition ,你了解吗,一般怎么使用?
你在实际项目中有没有用过 MySQL 的一些高级功能,比如事务之类的,使用场景是什么?
使用场景这个记得不太清楚了,答得磕磕巴巴,然后面试官说你没实际用过的话就不用说了...
你简单介绍一下 MySQL 的隔离级别吧。
反问环节。
8.19 10:00 HR 面 15min
都是一些常规问题吧,比如在学校的经历,实习经历,发展规划和意向城市等,最后说周五前会给结果。许愿 OC。
#面经##校招##快手##Java工程师#