快手商业化Java开发实习(hr面挂)
一面(1月5日 1H)
上来先聊了一下项目,然后从项目开始入手
项目直接问了数据量,在数据库宕机的时候的处理方法。(这里聊得很细节,但是项目我没参与这么深就不知道怎么回答了)
因为用到了PGSQL,所以开始聊数据库的问题
-
InnoDB和MyISAM的区别
-
前面两个引擎的B+树有什么区别
-
能讲一讲锁吗?(共享锁和排它锁),那可以聊一下意向锁吗?
然后是Java的问题
ArrayList和LinkedList的区别,效率和使用上
Java的八个基础数据类型
int的范围
float二级制怎么存的
最后是写归并排序一个单向链表(用Java写的,差不多写出来了面试官说时间差不多了就不用再写了)
面试官没有问spring、Mybatis、Redis、JVM一众热点问题
最后告诉我说非科班出身确实得多学学基础知识
二面(1月10日 1H)
1.关于锁了解多少,知道lock这个锁的底层原理吗
我提到了sync和volatile;CAS;无锁,偏向锁,轻量锁和重量锁,都解释了一遍
可惜面试官说其实他想问的是AQS,还非常好心的给我解释了一遍
2.spring的loc和AOP大概是什么样子的
3.concurrenthashmap和hashtable的区别
他们都是线程安全的,但是加锁的原理不同,hashtable是整个表加锁,concurrent是分段加锁
4.问了一下数据库的知识,我自己提到了innodb和myisam
面试官就问一个表id和name,在name上加了索引之后,生成的两棵树分别是什么样子的
5.算法题:就是给一个树的节点,根据中序遍历规则,给出下一个节点的位置(树的节点包括了left,right,father的三个指针)