2019迅雷校园招聘!后端工程师岗位两次技术面题目总结和解析

 

 

2019迅雷校园招聘后端工程师面试总结

2019迅雷校园招聘!后端工程师岗位两次技术面题目总结和解析

 

一面

一面概述

基本上面试过的一面都是问答形式, 面试官有一个题目清单,每个回答一看准确,二看表达. 一面基本上给出正确答案就给过.

一面题目

题目没有很特别的地方, 大部分是常见的面试题.

印象比较深刻的有:

  1. 5亿个整型数, 内存仅有4G时,如何完成排序. 若内存无限制,如何完成时间复杂度最小的排序.
  2. 答:
  3. 1)海量数据分治. 先HASH划分小文件,再使用堆排序快排分别完成各个小文件的内部排序, 最后使用归并排序构建败者树完成多个小文件的外部排序.
  4. 2)我先回答了: 若无限制,可全部读入完成时间复杂度为O(nlogn)的快排. 面试官提示内存无限大,可否再快一些. 内存无限制的情况下除了全部读入,还可以以空间换时间,直接进行计数排序. 又因为整型范围可知2^32, 5亿个数很可能填满整个范围, 直接构建长度为2^32的数组,以下标完成一次遍历计数即可. 时间复杂度为O(n).
  5. 给出一个字符串s, 要在1w个字符串中查找是否存在.
  6. 答: 工程需要的话, 直接哈希是最方便的做法,
  7. 原因:
  8. 1)各语言都提供完整的哈希实现, 与内存管理方案, 开发效率和运行效率都很容易达到满意程度.
  9. 2)1w个字符串本身所需内存也不大, 为其专门实现去重方案得不偿失.
  10. 补充: 如果1w个字符串是一个会多次重用且不断增值,需要维护的字符串库.可构建Trie-Tree(哈希树的一种)常驻内存当中.
  11. 手撕代码为冒泡排序, 要点为加入swapped变量, 让最优排序复杂度达到为O(n).

再分享一些面试题目,供参考

1.springCloud微服务和插件的问题很多

2.jdk1.7和1.8的hashmap有什么不同

3.JAVA各种几何的区别,比如map、linkMap之类的

4.多线程的线程池是如何工作的底层代码和原理

5.本地现场thredlocal的实现原理

6.spring bot 和spring MVC的区别

7.vue框架是否使用过是否会用

8.jvm的三种回收方式有什么不同比如cms和G1有什么区别

9.数据库优化的时候索引有哪几种如何选择

10.多人同时抢购一个库存的商品该怎么处理(分布式事务)

11.如何处理高并发就是请求数大于本地线程数量的时候不出错

复试

复试总结

复试可以说是很有质量了. 面试面多了其实会知道面试官有个套路:就是先从一个简单的问题开始试探,从你的表达就可以知道继续问多深了. 但复试几乎连试探都没有, 对着简历开始提问. 知识点都不是网上刷面试题见到的. 答起来很吃力, 大概只有一半的题目是我这一年里有专门准备过的.

全程更像是一场一个多小时的程序员技术交流, 对于我不懂的问题也给出了解答.

另一半都是凭印象或者自己的理解说出来的. 最后给了我offer也是很惊讶, 因为我自认为那一半没有准备过的题目,表达出来的水平确实差了很多.

但从面试官的提问方式也总结了一些面试标准(我认为的,未证实),

  1. 面试官发现你扫盲过的题目,就会问你原因.比如为什么要这样设计,能不能有更好的设计,下一个改进的点在哪;
  2. 如果是你没有准备过,就会看你解决问题的思路. 适当地给你一些提示.看能多接近正确答案. 感觉面试官并不是在等待一个非黑即白的正确答案. 这一点跟一面差别很大.

复试题目

凭印象记录下一些, 补齐答案估计还得小一个月, 每个点展开都是不小的篇幅.

  1. Cpython的GIL 形成原因
  2. 客户端知道了服务端的IP地址,以此建立一个TCP连接的过程.
  3. HTTP/2的主要优势在哪. 是否了解QUIC.
  4. 如果让你设计一个WEB开发框架,要有那些组成部分.
  5. 局域网内有人在用HTTPS服务, 如何窃取他的通信内容.
  6. Innodb中同时有主键和普通索引.给了一个实例表, 解释不同的where条件下,innodb访问索引的具体过程.(如,where后的colname为普通索引, 则innodb会从普通索引的B+Tree上找到目标, 获取目标的主键,然后第二步再去主键的B+Tree上(也就是聚集索引)找到主键的记录)
  7. redis内存管理机制. 如果设置了一个永不过期的key,但是实际上从未使用过,如何从内存中把它淘汰.
  8. linux文件格式,如何记录并访问一个文件
  9. 系统调用write()与read()实现过程与原理
  10. free指令中的buffer区和cache区什么作用,有什么区别
  11. 主从数据库实现读写分离时,由于海量的写操作导致主从不一致,如何解决.

(待更新.)

欢迎做Java的工程师朋友们关注我的公众号  Java周某人 免费获取免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)

其中覆盖了互联网的方方面面,期间碰到各种产品各种场景下的各种问题,很值得大家借鉴和学习,扩展自己的技术广度和知识面。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值