百度提前批JAVA后端一面
晚上八点开始的,本来通知的是电话面,临时有改成了视频面。
整体感觉面的非常底层,而且也挺多的。希望可以过!!!
题目:
1、网卡零拷贝。
2、说一下TCP的拥塞控制,知道慢启动吗?
3、项目中的你是如何设计包头的,内容有啥。 然后如果让你设计一个类似tcp/ip的包头,要有哪些字段?
4、TCP的拆包粘包。 如果不提前知道包长,数据内又有/0这种分割包的特殊字符,应该怎么办?(转译,当时没答出来)
5、解释一下hashmap 为什么用红黑树代替链表? 为什么不用avl树?
6、concurrentskiplist是扫描结构,如何查询的?如何回退的?
7、项目为什么用concurrenthashmap?如何保证线程安全的? hashmap多线程为什么不安全?(答了会链表回环,然后又问具体是怎么成环的,没打出出来。。。。)
8、hashmap扩容时如何进行挪移的?
9、解释一下list
10、concurrenthashmap 的size()是怎么做的?
11、hashmap、hashtable、concurrenthashmap 比较
12、synchonize关键字。是不是公平锁?为什么是不公平锁?
13、LRU和LFU。
14、mysql事务隔离级别,有什么区别?有什么用?
15、表锁和行锁都是什么时候加?
16、什么是聚簇索引?
17、mybats介绍一下 $和#的区。
18、介绍一下redis ,说一下缓存击穿,穿透,雪崩。然后怎么避免。
19、说一下布隆过滤器,然后如何减少误判。
20、然后无序数组不排序如何查找中位数(类似快排)