#实习生招聘#
字节一面,估计凉经
全程面试官有气无力的,体验感也特别差,开头肯定自我介绍,就开始技术面了
1.什么是hashmap
2.为什么要用红黑树不用avl树
3.什么是avl树
3..http端口,http状态码,成功的状态码是哪个?
4.数据库acid
5.算法
6.进程间通信,没了
先说我怎么回答的
1.这个我先从1.7来说吧,1.7hashmap底层有一个entry数组,靠hashcode来定位到这个数组的内存地址,然后存储元素,如果hash冲突,就头插法存入链表,但是多线程可能会导致循环链表。1.8里边底层结构大致一样,但是冲突过后链表改为尾插法,而且节点数目超过8会转为红黑树,这个阈值是数学上泊松分布算的(这里没说泊松分布,我就说了数学方法计算来的)
2.avl树读取效率可以比红黑树高,因为他总体结构更加平衡,但是在插入数据时会大量的左旋右旋操作,这个操作效率比红黑树来讲是非常低的,所以选择了红黑树
3.左右子树的高度差的绝对值<=1
3.http状态码我讲了500, 400, 404,说400-500之间是客服端错误,500上面是服务器错误,300-400是重定向错误,但是我只记得常用的这么几个,然后他问我成功的状态码多少,我肯定秒答200啊,感觉这种问题不符合字节啊
4.这里没深问我,底层都是我主动讲的然后他才提了一下,acid:原子性、一致性、隔离性、持久性,之前紧张然后隔离性没讲到出来,我说有点短路,但是我先讲了原子性底层由数据库日志redo log和undo log来实现的一个更新要么成功,要么失败回滚,然后持久性就是存储在磁盘上面,即便我mysql关机,宕机数据也不丢失的永久性存储,一致性我讲了约束一致性和数据一致性,并且举例redis和mysql一致性,mysql主从复制一致性(当然他啥也没问),然后我说我有点紧张让他提示以下,然后他给我说隔离性原理是啥意思,我马上说就是两个事务操作时它们之间的命令是不会互相影响的,然后说有点像内存屏障和锁的感觉,就是把事务操作隔离开来。
5.二叉树输出最左边节点,我层序写了,但是判断最左边没出来,算是没做出来吧
6.进程间通信,我讲了信号、信号量、消息队列、共享内存、管道,就差一个套接字吧,他问我还有没,我说我大致就记得这些,等他深问,结果说那今天就这样吧
全程我真的累,面试官无精打采的感觉,这是我面试体验最差的一次,感觉我在面试中除了算法做的不好,面试官问的都不是很深入,中途好多知识都是我自己引出来的,面试官也没问,像最后一问,我准备等他深入问我比如信号量怎么实现进程间通信的,什么是共享内存啥的,结果啥也没问就结束了,哎,字节只能大三在冲了,有缘再见各位
全部评论
(10) 回帖