今日头条Java工程师面经(社招 一面 二面)

今日头条研发面经


后端研发工程师

一面:

1 写一个题,找一个无序数组的中位数

2 写了个快排,然后让我找到无序数组第k大的一个数,我说先排序再找,实际上可以用快排的partition函数。

3 快排的时间复杂度,最坏情况呢,最好情况呢,堆排序的时间复杂度呢,建堆的复杂度是多少,nlgn。

4 操作系统了解么,Linux和windows

5 说说Linux的磁盘管理,一脸懵逼

6 Linux有哪些进程通信方式,五大件

7 Linux的共享内存如何实现,大概说了一下。

8 共享内存实现的具体步骤,我说没用过

9 socket网络编程,说一下TCP的三次握手和四次挥手,中间网络不好,面试官都没听清楚,很尴尬

10 跳过网络,问了项目的一些东西

11 问我如何把docker讲的很清楚,我从物理机,虚拟机到容器具体实现稍微说了下。

12 问我cgroup在linux的具体实现,不会。

13 多线程用过哪些,chm和countdownlatch在实习用过

二面:

1 自我介绍

2 Java的集合类哪些是线程安全

3 分别说说这些集合类,hashmap怎么实现的,扯了很多

4 MySQL索引的实现,innodb的索引,b 树索引是怎么实现的,为什么用b 树做索引节点,一个节点存了多少数据,怎么规定大小,与磁盘页对应。

5 MySQL的事务隔离级别,分别解决什么问题。

6 Redis了解么,如果Redis有1亿个key,使用keys命令是否会影响线上服务,我说会,因为是单线程模型,可以部署多个节点。

#字节跳动##面经##社招##Java工程师#
全部评论
第一题用堆或AVL的话时间复杂度可以减少到logn
1 回复
分享
发布于 2021-03-15 17:01
建堆的复杂度貌似是O(N)
点赞 回复
分享
发布于 2021-03-15 15:45
联想
校招火热招聘中
官网直投
6. 可以使用scan命令。和keys命令区别是效率会慢些,同时需要手动去重。但是对于线上服务影响很小
点赞 回复
分享
发布于 2021-03-18 17:18
楼主几年啊
点赞 回复
分享
发布于 2021-03-23 19:07
oc了吗
点赞 回复
分享
发布于 2021-09-14 18:59

相关推荐

5 75 评论
分享
牛客网
牛客企业服务