【熬夜整理近百份大厂面经】2022 校招提前批面经总结分享(腾讯、字节、阿里、百度、京东等招聘信息 + 必考点 + 简历书写)
整理面经镇楼,
随着高考的结束,2022 的校招提前批已经悄悄开始了,不管你是大四还是研三,应聘将会成为大家接下来半年乃至一年的重要任务!
接下来就结合我自身的经验以及我翻阅几百份最新面经后的一点点总结经验,希望对同学们的上岸之路有所帮助!
1.招聘信息的获取途径
2.大厂面试必考点(人俗称:八股文)
3.学习计划
4.简历书写
5.面试技巧与经验之谈
1.招聘信息的获取途径
不少的同学在校招的时候,并不是没有那个实力进更好的企业,只是忘记了招聘投递时间,毕竟在没有孤注一掷的情况下,比较好的公司的招聘消息都是需要注意的,那难免就会出现遗漏与忘记。所以,第一点就是要做好招聘信息获取的渠道来源:
①各大公司官方网站与公众号
②牛客网
③实习僧
④专业的技术 QQ 微信群
⑤有更好的可以留言评论分享一下
2.大厂面试必考点(俗称:八股文)
面试多次的同学就会知道,有些技术问题往往都是面试官绕不开,而你躲不掉的。而在我整理的 187 份大厂面经中,面试官问到频率最高的技术点及领域就是下面这些,这个一定要划重点!!
技术点:
1.红黑树
2.零拷贝
3.进程线程
4.TCP、UDP
5.epoll、poll、select
6.排序
7.哈希
8.拥塞控制
9.B 树和 B+树
10.虚拟内存
11.http 协议
12.malloc 和 new 的区别
就这 12 个问题不是全部百分之一百会全部出现,至少搞定它们会成为你的面试加分点,毕竟作为一个应届生而言,能考的点也就那么多了。至于问的范围泛不泛,这个就要看你的简历是如何写的了,这个文章后面也会说到。
技术领域:
1.c++基础
2.计算机网络
3.操作系统
4.网络编程
5.数据结构与算法
6.数据库
7.项目
作为一名应届生来说,项目经验的不足是一种常态,所以校招时虽然也会问到相关的项目技术内容,但是核心点还是看你对技术本身的研究与理解。
3.学习计划
虽然总结了很多经典的面试题,但是也架不住咱面试的公司多。所以,实打实的夯实好自己的技术能力才是关键,而面试官也可以通过对你学习技术的规划与速度,来判断你的学习能力,这一点对于程序员来说也是尤为重要的。
学习计划如何制定,这里也参考了网上大多优秀的同学总结出来的计划进行汇总,供有需要的同学参考。根据常考的技术领域,我们也将学习计划做区块的划分:
c++基础
1、面向对象的三大特性:封装、继承、多态
2、类的访问权限:private、protected、public
3、类的构造函数、析构函数、赋值函数、拷贝函数
4、移动构造函数与拷贝构造函数对比
5、深拷贝与浅拷贝的区别
6、空类有哪些函数?空类的大小?
7、内存分区:全局区、堆区、栈区、常量区、代码区
8、C++与 C 的区别
9、struct 与 class 的区别
10、struct 内存对齐
11、new/delete 与 malloc/free 的区别
12、内存泄露的情况
13、sizeof 与 strlen 对比
14、指针与引用的区别
15、野指针产生与避免
16、多态:动态多态、静态多态
17、虚函数实现动态多态的原理、虚函数与纯虚函数的区别
18、继承时,父类的析构函数是否为虚函数?构造函数能不能为虚函数?为什么?
19、静态多态:重写、重载、模板
20、static 关键字:修饰局部变量、全局变量、类中成员变量、类中成员函数
21、const 关键字:修饰变量、指针、类对象、类中成员函数
22、extern 关键字:修饰全局变量
23、volatile 关键字:避免编译器指令优化
24、四种类型转换:static_cast、dynamic_cast、const_cast、reinterpret_cast
25、右值引用
26、std::move 函数
27、四种智能指针及底层实现:auto_ptr、unique_ptr、shared_ptr、weak_ptr
28、shared_ptr 中的循环引用怎么解决?(weak_ptr)
29、vector 与 list 比较
30、vector 迭代器失效的情况
31、map 与 unordered_map 对比
32、set 与 unordered_set 对比
33、STL 容器空间配置器
推荐书籍:《C++ Primer》(第 5 版)、《STL 源码剖析》、《深度探索 C++对象模型》,面试考点基本几种在虚函数、虚继承、vector 等容器的底层实现以及 c++新特性上,所以应对面试这三本就够了。
计算机网络
1、OSI7 层网络模型:应用层、表示层、会话层、运输层、网络层、链路层、物理层
2、TCP/IP 四层网络模型:应用层、运输层、网际层、接口层综合 OSI 与 TCP/IP 模型,
学习五层网络模型:
从上向下架构:应用层、运输层、网络层、链路层、物理层链路层:
3、MTU4、MAC 地址
网络层:
5、地址解析协议
6、为啥有 IP 地址还需要 MAC 地址?同理,为啥有了 MAC 地址还需要 IP 地址?
7、网络层转发数据报的流程
8、子网划分、子网掩码
9、网络控制报文协议 ICMP
10、ICMP 应用举例:PING、traceroute
运输层:
11、TCP 与 UDP 的区别及应用场景
12、TCP 首部报文格式(SYN、ACK、FIN、RST 必须知道)
13、TCP 滑动窗口原理
14、TCP 超时重传时间选择
15、TCP 流程控制
16、TCP 拥塞控制(一定要弄清楚与流量控制的区别)
17、TCP 三次握手及状态变化。为啥不是两次握手?
18、TCP 四次挥手及状态变化。为啥不是三次挥手?
19、TCP 连接释放中 TIME_WAIT 状态的作用
20、SYN 泛洪攻击。如何解决?
21、TCP 粘包
22、TCP 心跳包
23、路由器与交换机的区别
24、UDP 如何实现可靠传输
应用层:
25、DNS 域名系统。采用 TCP 还是 UDP 协议?为什么?
26、FTP 协议(了解)
27、HTTP 请求报文与响应报文首部结构
28、HTTP1.0、HTTP1.1、HTTP2.0 对比
29、HTTP 与 HTTPS 对比
30、HTTPS 加密流程
31、方法:GET、HEAD、POST、PUT、DELETE
32、状态码:1、2、3、4、5**33、cookie 与 session 区别
34、输入一个 URL 到显示页面的流程(越详细越好,搞明白这个,网络这块就差不多了)
推荐书籍:《计算机网络》一书搞定网络相关的所有面试内容,基本考点在于 TCP 和 UDP 上。
操作系统
1、进程与线程区别
2、线程同步的方式:互斥锁、自旋锁、读写锁、条件变量
3、互斥锁与自旋锁的底层区别
4、孤儿进程与僵尸进程
5、死锁及避免
6、多线程与多进程比较
7、进程间通信:PIPE、FIFO、消息队列、信号量、共享内存、socket
8、管道与消息队列对比
9、fork 进程的底层:读时共享,写时复制
10、线程上下文切换的流程
11、进程上下文切换的流程
12、进程的调度算法
13、阻塞 IO 与非阻塞 IO
14、同步与异步的概念
15、静态链接与动态链接的过程
16、虚拟内存概念(非常重要)
17、MMU 地址翻译的具体流程
18、缺页处理过程
19、缺页置换算法:最久未使用算法、先进先出算法、最佳置换算法
推荐书籍:《现代操作系统》、《Unix 环境高级编程》、《Linux 多线程服务器端编程》关于操作系统的书一般都比较难啃,对应的其实面试官也不会提问太多,基本围绕文件系统、进程线程问题展开,可以重点学习。
网络编程
1、IO 多路复用:select、poll、epoll 的区别(非常重要,几乎必问,回答得越底层越好,要会使用)
2、手撕一个最简单的 server 端服务器(socket、bind、listen、accept 这四个 API 一定要非常熟练)
3、线程池
4、基于事件驱动的 reactor 模式
5、边沿触发与水平触发的区别
6、非阻塞 IO 与阻塞 IO 区别
推荐书籍:《Unix 网络编程》,对于网络编程搞懂上面 6 点基本就没什么问题了
数据结构与算法
1、数组
2、链表
3、栈
4、队列
5、堆
6、二叉树:二叉搜索树、平衡树、红黑树
7、B 树、B+树
8、哈希表及哈希冲突
9、排序算法:冒泡排序、简单选择排序、插入排序、希尔排序、归并排序、堆排序、快速排序(要求能够面试时手写出堆排序和快速排序)
10、二分法:旋转数组找 target
11、回溯法:全排列、复原 IP 地址
12、动态规划(掌握基本的动态规划的几个题其实就够了,如:斐波那契数列)
推荐书籍:《大话数据结构》
数据库
1、数据存储引擎:InnoDB、myISAM、Memory
2、数据库索引类型及原理:B+树索引、哈希表索引
3、锁:悲观锁、乐观锁
4、事务:事务的四大特性(ACID)、事务并发的三大问题、事务隔离级别及实现原理
5、多版本并发控制实现机制(MCVV)原理
推荐书籍:《高性能 MySQL》
4.简历书写
对于简历很多人不太重视,或者是不会去重视,认为把技术学扎实多刷题就够了。但其实就简历的好坏而言,一定程度的上决定着你的面试过程的难易程度。
从你书写的技术项来说吧,并不是写的越多越好,有的同学可能觉得自己会的东西太少了,稍微懂点啥,听过的技术全部往简历上写,让简历看上去满满当当的。这么做其实是最不明智的,也是自己在给自己挖坑。
为什么这么说?
面试官和你开启聊天的前奏是很短暂的,那你们的话题注定是会围绕着你的简历来展开的。而且相关的技术考点也是会围绕你简历上所写的内容展开。你如果追求简历的好看,写了大量的自己都不懂不熟悉的技术范围,而面试官考到这些的时候,你一问三不知,对于你给面试官的印象就是跌到谷底。所以简历一定要真实,不要作假。那有同学就会问了,那确实会的不多怎么办?不作假不代表我们不可以去优化咱们的简历。简历书写本身也是一个有逻辑性的事情。会什么,突出的重点是什么,技术点的排序往往也都是由浅及深。在自己擅长的领域进行发散,引导面试官在你擅长的领域做更多的交流。对于自身而言,在熟悉的领域你会更加放松,又能突出自己的优势;对于面试官而言,也会觉得你对某一个方面的理解和研究还可以,要知道对于面试时间一般都是有控制的。在你擅长领域的时间花费的比较多,其他技术点的时间就会相对变少。
总体而言,简历是你给面试官的第一印象,值得大家重视。
5.面试技巧与经验之谈
作为一个技术岗位而言,最大的面试技巧莫过于扎实的技术功底了。但是除了这些我们也要保持一种空杯心态,抱着多交流多学习心态去面对每一场面试。毕竟 2022 年的校招也是刚刚开始,能够提早上岸当然欢喜,没有的话就不用着急,时间还有,好好规划自己的学习计划,上岸也是简简单单的事。
最后分享给大家一些面试成功喜提 offer 的经验分享视频,加油!!
版权声明: 本文为 InfoQ 作者【学无止境的阿奔】的原创文章。
原文链接:【http://xie.infoq.cn/article/041f45fe01e485dee8e466872】。未经作者许可,禁止转载。
评论