字节跳动:视频面试,一面过了,二面挂了。
一面:40 分钟
1.一开始写算法,爬楼梯,一次只能爬一阶或两阶,n 阶楼梯共几种爬法。(写递归,非递
归,还有复杂度为(logn)三种,第三种我写不出来);
2.就着项目问,mysql 调优,索引原理,explain,文件排序,以及给出条件问我怎样建索引
比较好;
3.知道java 几种map,hashmap 底层如何实现(数组+链表+红黑树),时间复杂度如何;
4.JAVA 垃圾回收机制;
5.redis 有哪几种存储,底层如何;6.我简历里写前端用过React,问React 生命周期;
1.自我介绍;
2.项目哪里做得最好,详细说下,然后设计相关知识点,包括elasticsearch 索引原理;
3.写代码,快排,写测试;
4.写代码,一棵树,给你几个节点,找出他们的最小公共祖先节点;
5.tcp 的ACK 在哪会用到;
6.计算机从快到慢的结构是哪些;(要详细,但我只记得cache,内存,硬盘什么的……)
7.虚拟地址;(不会啊,都不知道操作系统会问这些,我天真的以为只会问死锁?)
8.set 里面只有一个元素,怎么取出来(这里重点说一下,因为平时都用list 和map,set 的
一下子忘记了,当时脑抽没有用迭代器.next()的方式取出,而是用.get(0),然后面试官引导
我,问我set 有没有序,怎么实现的,我说无序,是基于hashmap 实现的,然后才想到不能
直接用下标取出来);
9.怎么给无序的数组找中位数,我说排序后取中间,面试官问我用什么排序,我说一般用Java
自带的Arrays.sort(),然后我解释Arrays.sort()底层实现,并在一个没有提示的网页上码归并
排序的代码给面试官看;
全部评论
(3) 回帖