快手8.8 Java后端一面面经
面试官小哥哥人非常好,就是时间有点长面了100分钟。
没有录音凭感觉回忆一下问题
先问了项目,项目项目
问我项目的数据表是怎么设计的
项目怎么和其他人交互(我说用http,rest api,他问为问什么不用rpc,我说rpc太难了,其他人学习成本高)
又问我,如果用了kafka,和用http有什么区别(不知道怎么答,就说了个如果用kafka的话,其他人的服务下线的话再次上线还能从MQ中拿到,用http就拿不到了,瞎说的不知道对不对)
然后MySQL,MySQL太重要,没看过的赶紧看看,问了为什么InnoDB用B+树,InnoDB的两个索引类型,索引什么情况下失效,非聚簇索引搜索的过程
然后java HashMap,底层结构,是不是线程安全的,会有什么问题。然后ThreadLocal,结构,过程,为什么不remove会内存泄漏,提到了弱引用,又开始说Java的引用类型,之后又提到了GC,问我用的什么GC,之后是G1,G1的内存结构是什么样的,G1是怎么选择块回收的,G1怎么计算块的回收收益,G1和CMS比有什么优点。问我Mybatis Sql的#{}和${}有什么区别,为什么
然后设计模式,让我手写个单例模式,开始有点紧张没写明白
第二道题是SQL,想了半个小时没写出来,心态已经崩了,小哥哥人很好,提示了我好几次,虽然我还是没做上。去年在leetcode上做过但是忘了,刚刚看了一下是hard。https://leetcode-cn.com/problems/department-top-three-salaries/ 第三道题是普通算法题,三数之和
后面做题感觉gg了
发面经,赞赞人品,求个二面。
#面经##Java工程师#
没有录音凭感觉回忆一下问题
先问了项目,项目项目
问我项目的数据表是怎么设计的
项目怎么和其他人交互(我说用http,rest api,他问为问什么不用rpc,我说rpc太难了,其他人学习成本高)
又问我,如果用了kafka,和用http有什么区别(不知道怎么答,就说了个如果用kafka的话,其他人的服务下线的话再次上线还能从MQ中拿到,用http就拿不到了,瞎说的不知道对不对)
然后MySQL,MySQL太重要,没看过的赶紧看看,问了为什么InnoDB用B+树,InnoDB的两个索引类型,索引什么情况下失效,非聚簇索引搜索的过程
然后java HashMap,底层结构,是不是线程安全的,会有什么问题。然后ThreadLocal,结构,过程,为什么不remove会内存泄漏,提到了弱引用,又开始说Java的引用类型,之后又提到了GC,问我用的什么GC,之后是G1,G1的内存结构是什么样的,G1是怎么选择块回收的,G1怎么计算块的回收收益,G1和CMS比有什么优点。问我Mybatis Sql的#{}和${}有什么区别,为什么
然后设计模式,让我手写个单例模式,开始有点紧张没写明白
第二道题是SQL,想了半个小时没写出来,心态已经崩了,小哥哥人很好,提示了我好几次,虽然我还是没做上。去年在leetcode上做过但是忘了,刚刚看了一下是hard。https://leetcode-cn.com/problems/department-top-three-salaries/ 第三道题是普通算法题,三数之和
后面做题感觉gg了
发面经,赞赞人品,求个二面。
#面经##Java工程师#