字节跳动后台开发实习生一面

304 阅读2分钟

java:
讲一下hashmap的底层实现(数组+链表,长度一定转红黑树)

quartz框架:
项目中用它来做什么
讲一下实现过程
为什么不用操作系统的定时任务(没了解)
(面试官:分布式才需要用到定时任务,我这个项目貌似没有必要?)
如果服务器在当时没有来得及触发定时任务,该怎么办(没考虑过,QAQ,可能跟延时器有关系,没深入了解)

数据库:
事务ACID
四个事务隔离级别(前两天还看了一点,后面忘记看完,gg太惨了,大概讲了一下重读,幻读,2个隔离级别名字)
什么情况下会出现重读(讲了2个线程,a线程读了数据X,b线程也读了数据X,a线程修改数据X为Y,当b再次读数据X,发现为Y??(面试后复盘发现有点问题?。。幻读把这是))
如何避免(我说加锁,加个悲观的排他锁,面试官想往不加锁的方向去讲,我就和他讲了乐观锁,他也没继续问,不知道啥情况)

redis:
问redis的原理(讲了自己不太懂,刚了解)
初略讲了一下跳表结构(问为什么不用树,红黑树也和跳表结构差不多?(自我引申:B+树和红黑树))
字典树插入时间复杂度(O(n),遍历一遍啊!我服了,我tm回答的logn是什么鬼,当时太紧张我晕了)


操作系统:
说自己操作系统菜,没问

计网:
OSI七层模型
三次握手
四次挥手
为什么挥手要等待(答2倍报文长度的时间,过)
http寻址过程
https(只答了比http安全)
拥塞(没了解)

算法题(手撕代码):
1.二叉树右视图(dfs算法就过了,貌似用栈和队列也可以,dfs代码比较短)
     1
  2    3
4   X 5  X
     6

2.判断链表是否有环:1-2-3-4-5-2(未做出,不是快慢指针那题,只说了思路,但是面试官说要常量级别的空间复杂度,瞬间爆炸)


(结尾问面试官自己还需要提高什么地方,说注意基础知识的掌握,我很多操作系统,数据库知识还没问呢。但是算法可以,思路很清晰)
(QAQ估计凉了)