快手二面凉经
先自我介绍,然后一点项目不问直接开始八股
#快手信息集散地#
1.java基础
java类的加载过程
具体问到了类变量在哪里赋值 在哪里赋用户定义的值
我忘了验证后的过程叫啥了 我就说验证之后的过程赋值 初始化的时候赋用户自定义的值,但是由final修饰的类变量直接在准备阶段赋用户自定义的值
双亲委派机制解决的问题
synchronized锁升级的过程
具体问到了轻量级锁的实现原理
AQS队列原理
2.mysql
mysql中的b➕树介绍,包括页目录什么的
单表最大数据量
mysql组成部分
innodb干什么的
undo log和redo log解决了什么问题
3. redis
redis基础数据类型
redis的cluster分片集群
我说类似于哈希一致性算法 在hash环上面分了hass槽,然后将这些槽手动或自动分给每个节点,访问数据时通过数据key计算出数据在哪一个槽上 然后映射到对应的节点就可以准确的访问到数据了 最后面试官就要和我深究槽的个数
4设计题
浏览器的前进回退功能怎么实现
开始说用栈就好了,后来纠正过来用一个双向链表和当前页面指针
算法题
最后合并k个有序链表 用的优先队列解决的
感觉答得都还可以 面试官最后说技术深度还有待提高 比如刚刚的redis集群 这个槽数主要就是解决了扩容的时候有限节点受影响 我说类似于一致性哈希算法 最后被秒挂了