面试刷题11-11

其实三面面试完都有一个多星期了,现在才记录一下面经感觉有点晚,面试前每天都刷各种字节跳动的面经,对我帮助特别大,感谢牛客!!

一面 60min

  1. leetcode原题,求二叉树的最长路径长度。
  2. 解释XSS 和 CSRF,它们之间有什么区别,以及如何防范。
  3. 说一下TCP的三次握手和四次挥手的过程。
  4. 数据库事务的四种隔离级别分别是什么,它们解决了哪些问题。

读未提交,读提交,可重读读,串行化

读提交: 解决脏读

可重复读: 解决不可重复读

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

MyISAM 不支持事务,MyISAM只有表锁

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

B+树,聚集索引

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

IO 次数少,效率高

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

 

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

 

Map Reduce 

 

  1. 你有什么问题要问我的吗?

二面 40min

  1. leetcode原题:二叉树的后续遍历非递归形式。
  2. 出了一道leetcode上的SQL题 596.超过5名学生的课
  3. redis有什么数据结构。
  4. redis中的网络IO有了解过吗,它是单线程的还是多线程的,为什么要用单线程。
  5. select 和epoll有什么区别,你有没有用过。
  6. 如果你要对班里的学生根据分数进行排名,你觉得用redis里的哪个数据结构比较好。

zset

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

跳跃表

  1. 数据库的四种隔离级别,解释一下不可重复读和幻象读。
  2. InnoDB与MyISAM数据库存储引擎有什么区别。(又问了一遍)

MyISAM 不支持事务,MyISAM只有表锁

  1. cookie和session的区别是什么,干什么用的,JWT有了解吗?
  2. 你之前是搞Java的呀,那我问你String 和 StringBuilder有什么区别。
  3. 你了解哪些网络攻击?

syn 攻击

DNS攻击

  1. 你有什么问题要问我的吗?

 

三面 70min

  1. 还以为头条面试是不问项目的,所以也没怎么准备,结果一上来就怼项目和实习经历,各种问,面试官特别严肃,感觉是某个部门的leader,搞得我特别紧张,不多叙述了。
  2. 算法题1: leecode原题,买卖股票的最佳时机,只能一次买入和一次卖出,要求输出买入的时机和卖出的时机和赚取的最大利润。
  3. 做完这道题后就接着要求写出可以进行多次交易的结果,求赚取的最大利润。
  4. 算法题2:leetcode原题,一天有24小时,一个工人在某一天里短短续续的工作了几个小时 例如1 ~ 2 点,4~8点 5~10点。。。,求这个工人这一天中一共工作了几个小时。(其实就是区间合并问题)
  5. 你有什么问题要问我的吗?


 

去年找日常实习的面经,整理了一下。三面算法没写出来,挂了。

一面

 

1. 算法题:二分搜索相关
2. 概念题:解释 分布式、微服务、负载均衡、高可用
3. http是有状态还是无状态? TCP是有状态还是无状态?
4. 客户端禁用cookie怎么办? 你说的实现方式安全吗?
5. SSL,http和https,https是有状态还是无状态?
6. String为什么设计成final不可变? 是怎么实现不可变的?

保证线程安全
7. 自己能实现一个不可变的类吗?

用final修饰
8. equals 和 hashcode 为什么要一起重写?如果不重写hashcode会出现什么问题?

使用HashMap时,会先比较hashcode,再比较equals
9. hashmap插入的时候,哈希冲突解决? 查找的时候,哈希冲突怎么解决?

链地址法
10. hashset是怎么实现的? hashmap是怎么实现hashset的?

value 放一个常量
11. 多线程:并发和并行,原子类,CAS操作
12. mysql的索引:B+树底层实现?B树的底层实现?为什么要用B+树而不用B树?
13. 最左前缀匹配具体是怎么实现查找的?最左前缀匹配用了B+树的哪些特性?
14. (a,b,c)联合索引,为什么不能单用(b),而一定要用(a,b)?B+树是怎么实现的?


15. 什么是幻读,不可重复读?这些概念是在事务内还是事务外? 事务内
16. mysql怎么实现可重复读?设置了可重复读隔离级别底层是怎么实现的? (MVCC)
17. 了解MVCC吗?怎么实现的?什么是快照读?快照读能读取到最新的吗?快照读和当前读的区别?
18. synchronized和reentrentlock哪个效率高?

reentrentlock

 

二面

1. 算法:实现一个缓存队列 ,二叉树的镜像
2. 进程和线程的区别?内存管理说一下你的了解。进程调度算法。
3. 为啥B+树最后叶子节点需要用链表相连接? 便于区间查找
4. TCP状态转换图,画一下。


5. 操作系统I/O模型了解吗?epoll模型了解吗?

IO 多路复用
6. CopyOnWriteArrayList的相关特性?

写时复制
7. ArrayList遍历的时候能删除元素吗? 删除的时候会报什么异常?

不能,空指针异常?

 

三面

1. 算法题: (1)树的节点最大距离(2)区间覆盖 例 [1 3] [2 5] [3 6]能否覆盖[2 6]
2. Linux相关命令。
3. 手写SQL,join

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值