头条后台开发面试题分析

一面 60min

  1. leetcode原题,求二叉树的最长路径长度。

这道题目偏难

     2. 解释XSS 和 CSRF,它们之间有什么区别,以及如何防范。

网络完全问题,这道题目不常见

     3. 说一下TCP的三次握手和四次挥手的过程。

三次握手,四次挥手是校招必考题,要特别熟练

头条后台开发面试题分析_第1张图片

头条后台开发面试题分析_第2张图片

    4. 数据库事务的四种隔离级别分别是什么,它们解决了哪些问题。

Java开发的题目可能数据库问的深一些

5. InnoDB与MyISAM数据库存储引擎有什么区别。

6. InnoDB的索引使用了什么数据结构,与MyISAM使用的索引有什么区别

7. mysql为什么要使用B+树作为索引呢?

数据库索引和B+树属于Java面试经常问道,比较偏的题目。

8.场景题:假设你在宿舍玩游戏,突然发现特别卡,原来你舍友在用迅雷下载东西,为什么迅雷会占用网络带宽导致你玩游戏特别卡,而游戏竞争不过迅雷。

9.大数据量处理题:假如你在网上爬取了用户访问的网址存储在文件中,有4个G那么大,但是你目前只有一台电脑,而且内存是1个G的,请问怎么找出用户访问次数最多的网址。(差不多是这个意思)

考察MapReduce操作

二面 40min

  1. leetcode原题:二叉树的后续遍历非递归形式。

二叉树的后续遍历的非递归形式,可以用先序遍历的逻辑,加上反转实现,相对较简单

2. 出了一道leetcode上的SQL题 596

SQL语言的题目,Java开发也会考察

3. redis有什么数据结构

String,Hash,List,Set,ZSet

4. redis中的网络IO有了解过吗,它是单线程的还是多线程的,为什么要用单线程。

单线程,避免线程同步加锁使得速度变慢

5. select 和epoll有什么区别,你有没有用过。

select 基于轮询,epoll直接通知

6. 如果你要对班里的学生根据分数进行排名,你觉得用redis里的哪个数据结构比较好。

ZSET数据结构

7.zset的底层是用什么数据结构实现的。

跳跃表

8.数据库的四种隔离级别,解释一下不可重复读和幻象读。

9.InnoDB与MyISAM数据库存储引擎有什么区别。(又问了一遍)

10.cookie和session的区别是什么,干什么用的,JWT有了解吗?

cookie在客户端,session在服务器段

10.你之前是搞Java的呀,那我问你String 和 StringBuilder有什么区别。

String长度不可变,StringBuilder长度可变

  1. 你了解哪些网络攻击?
  2. 你有什么问题要问我的吗?

 

三面 70min

  1. 还以为头条面试是不问项目的,所以也没怎么准备,结果一上来就怼项目和实习经历,各种问,面试官特别严肃,感觉是某个部门的leader,搞得我特别紧张,不多叙述了。
  2. 算法题1: leecode原题,买卖股票的最佳时机,只能一次买入和一次卖出,要求输出买入的时机和卖出的时机和赚取的最大利润。

经典的题目,中等难度。

3.做完这道题后就接着要求写出可以进行多次交易的结果,求赚取的最大利润。

  1. 算法题2:leetcode原题,一天有24小时,一个工人在某一天里短短续续的工作了几个小时 例如1 ~ 2 点,4~8点 5~10点。。。,求这个工人这一天中一共工作了几个小时。(其实就是区间合并问题)
  2. 你有什么问题要问我的吗?

你可能感兴趣的:(算法)