【综合】一些春招实习面经和碎碎念

55 篇文章 0 订阅

写在前面的话。

C++,两年半专硕,投了好些家,完结撒花,专心搞毕设了。(牛客真的蛮灵,3月27日发了第一篇面经后,开始变得顺起来)(大伙不要喷我,我的本意不是“面霸”,只是希望有位爸爸能够收留)

B站

2020/1/3-电话面

  1. 用户态和内核态的区别
  2. 用户态和内核态切换的代价
  3. 环形缓冲区的好处
  4. 如果多个用户读同一个缓存环
  5. 互斥锁
  6. TCP四次挥手
  7. Alloc,c语言内存管理
  8. Springboot依赖注入
  9. 快速排序:只有1、2的数组,将1都放在左边,2都放在右边

2020/1/9-现场面

  1. 一个网站搜索所经历的过程
  2. DNS服务器与提供内容的服务器的区别
  3. 为了B站视频加载更快,可以怎么做
  4. 对称加密和非对称的区别
  5. 非对称加密有哪些
  6. AES的过程
  7. TCP三次握手和四次挥手
  8. Springboot的一个model怎么做的
  9. 数据库注入过程,如何防范
  10. 安全攻击有哪些
  11. DDOS有哪些,如何防范
  12. 有没有见过现实生活中的DDOS攻击
  13. 虚拟机逃逸过程
  14. Openstack明文存储的好处
  15. IP地址跳变时,若有服务正在使用怎么办
  16. CDN了解吗,有什么好处
  17. 为什么不做安全,要搞开发
  18. React用过?
  19. 金融沙箱那个项目,为什么用mysql进行存储
  20. 存的数据包用了什么索引
  21. 规则匹配,大流量下会不会漏掉
  22. 了解dpdk吗
  23. Pf_ring的公司,ntop,其他工具有使用过吗
  24. Webpack
  25. C语言链接的一些库,lpthread?
  26. 动态链接和静态链接

复兴

2020/2/8-电话面

  1. 网卡字节流->用户interface,内核干了什么:内核负责运输层以下的部分。
  2. Swift用户的接口协议?
  3. 对象存储了解多少?
  4. NFS
  5. 存储冗余,一个节点down了,如何恢复,能否恢复?
  6. Swift的算法,存储算法
  7. Pf_ring内核加载到释放经历了什么
  8. 用户http请求,从客户端到服务器端,经历了什么
  9. Tomcat之类软件的用处
  10. Web网上书店:偏工程的项目

Vmware

2020/2/12-视频面

  1. 进程和线程的区别
  2. 进程哪些资源线程可以用
  3. 系统中一个程序只能运行一次,别人不能运行
  4. 单链表反转
  5. Libpcap内核驱动?
  6. 数据包从网卡到用户
  7. 系统调用、过程
  8. 进程通信方式
  9. Core dump发生了什么

字节跳动-1、2

2020/2/21-视频面

  1. C++的多态
  2. C语言的内存机制
  3. 单链表的交点
  4. 最近公共祖先
  5. 复杂度!!!
  6. 进程和线程
  7. 系统调用
  8. 线程通信
  9. 进程通信
  10. http和https
  11. tcp和udp
  12. define的宏定义过程
  13. extern、static
  14. ssl协议
  15. 内核和用户的切换
  16. 粘包和分包

2020/2/21-视频面

  1. 快速排序的复杂度,最优和最差
  2. 死锁、场景
  3. 小数点保留
  4. mmap是什么
  5. c++的虚函数
  6. c++和c近几年的机制变化
  7. DNS,什么协议
  8. http和https,能否解密
  9. 公钥和私钥
  10. 项目中的异常检测?
  11. 段、页
  12. 散列函数

微软(上海)-1、2、3

2020/3/5-视频面-1、2、3

  1. 什么是内核???
  2. 写一个class,buffer拷贝的过程
  3. 抓取的是哪一层的数据包
  4. 抓取的是什么协议的数据包
  5. 抓取数据包的过程
  6. 可变环的性能
  7. 谁能用到这个抓包工具呢
  8. 这个抓包工具在什么情况下性能更优
  9. 有序数组中位数
  10. 直方图,最大矩形面积
  11. 山谷积水的坑数量:例如,(0,7,6,8,5,7,4,8,0),有两个坑:dp[i]表示从0开始的最大值

阿里-1

2020/3/19-电话面 10:00-11:20

  1. 四次挥手,S->C后C是否需要等待2MSL
  2. TCP和UDP区别,使用场景
  3. TCP如何保证可靠
  4. 子网掩码作用
  5. 流量控制和拥塞控制,简述
  6. 进程和线程
  7. 高并发,单进程多线程、多进程单线程
  8. 进程通信方式、命名管道
  9. 二层、三层交换机
  10. Buffer和cache,服务器宕机后,buffer数据还存在吗
  11. B树/B+树
  12. 冒泡、快排、堆排序的空间复杂度、过程、优化方案
  13. http和https过程、加密方法、性能
  14. 银行家问题
  15. 判断链表有环
  16. 数组和链表区别
  17. Python底层
  18. Code:冒泡排序/快排/层序遍历/之字形遍历/用锁实现交替输出

腾讯-0

2020/3/19-电话面 16:00-17:00

  1. 缓存环、多线程、线程冲突、性能优化
  2. Sbrk、mmap
  3. Linux指令
  4. Shell指令、source、./
  5. Sizeof
  6. 为什么三次握手、四次挥手、2MSL
  7. Static全局变量、extern、头文件
  8. Struct中两个线程访问不同变量,CASS
  9. Map、hashmap的结构、原理
  10. 虚构造函数、虚析构函数、申请、释放顺序
  11. Struct内存对齐
  12. 判断质数优化?
  13. 进程通信、socket和管道区别
  14. 线程锁
  15. 类中增加函数是否增加位置
  16. 内存拷贝函数memcpy、strcpy原理
  17. 为什么用红黑树
  18. 动态链接和静态链接发生了什么

腾讯微信-1

2020/3/24-电话面 15:00-16:00

  1. free和delete
  2. 有序链表数组合并
  3. New和malloc,申请了可以直接用吗
  4. Tcp 3和4,为什么四次,不用三次
  5. Seq为什么用x不用0
  6. Vector取内存,第五个位置的值,不断push,安全吗
  7. 静态和全局

腾讯微信-2

2020/3/26-电话面 11:00-11:30

  1. delete / delete[]
  2. map / unordered_map,空间,效率,底层
  3. 三次握手
  4. 100000个数,取出最小的10个
  5. 多线程并发

美团-1

2020/3/27-视频面 14:00-15:30

  1. 一个不知大小的数组,遍历一次,如何保证遍历过程中每个数字是否取出是等概的。
  2. 一个数组中,只有一个单个元素,其余都是成双成对的,如何快速找出那个单独的。
  3. 一个数组,遍历一遍就找出出现topk个的那个数。
  4. 质数 优化
  5. 最大公约数 优化
  6. 平时怎么学习的 最近学的映像最深刻的
  7. 职业规划 优势和劣势 c++的难点
  8. 多线程并发 线程和进程 如何切换 进程通信
  9. 内核和用户态区别 如何切换
  10. 如何抓取加密数据包
  11. http网址加载过程 http和tcp的区别
  12. http和https的区别 加密过程
  13. 零拷贝什么思想 为什么零拷贝 节省了什么
  14. 有什么方法实现
  15. tcp三次握手 四次挥手 为什么 三次
  16. tcp flooding攻击 如何防范
  17. 中间人攻击 如何防范
  18. 缓存了解吗
  19. 数据库索引 什么时候不能用索引
  20. b+树和红黑树 为什么
  21. mysql如何实现可重复读
  22. 死锁 解决方法
  23. 消息队列使用
  24. tcp保证可靠的方法 拥塞避免
  25. 如何实现可靠的udp
  26. tcp粘包

招行笔试

N个木棍,长度为ai,重量为bi,给这N个木棍排序,若后一个的ai和bi都大于等于前一个,则算其权重为1,否则为0,第一根木棍权重为1,求最小权重和。

字节跳动-1、2

2020/3/29-视频面 10:30-11:30

  1. 进程和线程、上下文切换了什么、共享了什么
  2. 线程独占什么、切换时候内核做了什么
  3. 七层模型、协议有哪些、arp、rarp
  4. 为什么要有ip和mac、mac地址是如何来的
  5. C++多态、继承、重载
  6. Map的种类
  7. 数据库语句!!!count(*)、count(1)、count(字段)
  8. group by、order by、distinct
  9. 一条sql语句,数据库做了什么?
  10. 缺页了怎么办,物理内存如何分配的
  11. 虚拟内存和物理内存,为什么
  12. B+树和红黑树
  13. 红黑树和一般的平衡二叉树,增、删、改、查的过程和效率、时间复杂度
  14. 有序数组,找出和为k的数对

2020/3/29-视频面 18:00-18:40

  1. 数据库组合索引,最左前缀,为什么
  2. 数据库事务特性
  3. 隔离机制有哪些,分别避免了什么
  4. http1.x的新特性、状态码
  5. 长连接和短连接,什么时候会出现
  6. 长连接是如何维持的,心跳机制,如果一直想要连接着怎么办
  7. 输入一个url发生了什么
  8. 二叉树各层节点数,递归、非递归,时间、空间复杂度
  9. 静态多态和动态多态
  10. 重载和覆盖
  11. 聚簇索引和非聚簇索引,实现区别,索引存在哪里了
  12. 主键索引存放
  13. 死锁是什么,死锁发生了怎么办
  14. 什么叫字节流,什么叫数据报

腾讯微信-3

2020/3/30-视频面—初面 14:15-15:25

  1. 判断一个int是否为回文数,回文数定义为首位置和末尾一样,如1234321,123321,要求10分钟内完成。bool check(int num);
  2. 判断二叉树是否为平衡二叉树,要求10分钟内完成。

struct Node

{

    struct Node * left;

    struct Node * right;

    int value;

};

bool IsBalance(Node* root);

  1. 请实现LRU缓存类,实现Get、Set接口

class LruCache

{

public:

    LruCache();

    // value返回key对应的数据,成功返回0,如果不存在,返回1

    int Get(int key, std::string& value);

    // 成功返回0,是吧返回-1

    int Set(int key, const string& value);

private:

    //请定义必要的存储参数

}

key=1,value=tom

key=2,value=cat

key=3,value=jerry

使用频率:key=2,key=1,key=3

存储只能放三个key,那新插入一个,淘汰key=3

  1. vector<int> vec;

map<int, int*> int_map;

for (int i = 0; i < kMaxNum; ++i)

{

    vec.push_back(i);

    int_map[i] = &vec.back();

}

代码有什么问题。

  1. 项目简单介绍
  2. 内存泄漏的场景、处理方法
  3. New 和 malloc的区别
  4. 为什么基类的析构函数要是虚函数
  5. 为什么要有虚函数
  6. 拥塞控制
  7. Vector的实现机制
  8. IO复用、区别
  9. 建议:多看源码、最优方法

阿里-2

2020/3/30-电话面 21:00-22:00

  1. 部门SRE?
  2. 实现一个栈、死锁?
  3. 描述堆排序
  4. 双向链表删除一个节点
  5. Sql语句!!!
  6. 数据包如何实现校验和
  7. C语言如何实现对象
  8. Post数据包的结构
  9. 死锁?
  10. C++加锁
  11. TCP和UDP的区别,数据包结构

美团-2

2020/3/31-视频面 18:00-18:45

  1. 项目介绍
  2. 合作的项目,与别人交互,交互检查,合作中有没有遇到因为需要合作带来的问题
  3. 以后的学习计划、怎么学
  4. 面试到哪个阶段、偏向哪个公司
  5. 三年内的人生计划
  6. http状态码
  7. url输入到展示全过程
  8. redis了解?分布式缓存
  9. 反向代理了解?
  10. 内核和用户态区别
  11. Tcp和udp区别
  12. 流量控制的方法
  13. 流量控制的udp?
  14. C++面向对象的三个特性

阿里-3

2020/3/31-视频面 21:00-21:45

主要聊项目

字节跳动-3

2020/4/2-视频面 14:00-14:40

  1. 项目简单介绍
  2. 用过java?springboot、aop什么东西
  3. 跳格子:[3,5,0,7,1,2,4,2,1],最少步数
  4. Dpdk
  5. C++11,右值引用、智能指针
  6. 编程写智能指针,区别

好啦,下面是我的碎碎念,别看了,真的很碎。。。。。。

人生中第一次找工作(实习),一开始的时候真的是屡屡受挫,也是因为自己基础还没打牢。天真地觉得会写几个题,会背一些常见的面试题就会有公司要我了,too naïve。

微软真的是我抱着最大的希望去面的,面微软前两个周一直在刷题,别的啥也没干,确实,微软就是简单聊聊项目,然后做题,lc上的hard题,虽然都做出来了,可是没能是最优解,就是nlogn不行,需要n的那种,能进上海微软的一定是很厉害很厉害的人了。面完第二天就问了hr,大概知道了结果,丧了好些天,最想去的公司去不了了,不知道下面该怎么办。

还是要看基础知识的,操作系统、计算机网络、编程语言,甚至计算机组成原理,后来面试过程中发现,只要你基础过硬,面试官的问题都能答上来,即便项目不太行,结果也还是理想的(字节除外)。字节也是我的一个痛了,先投了日常实习,二面凉了,后又投了暑期实习,一二面都很顺利,刚面完就通知下一面了,三面约了4天后,因为对项目中使用的框架不了解,基本上是一问三不知,面试官兴致显然也不高,惨兮兮。我感觉我的面试状态很大程度上取决于面试官的兴致,这样很不好的,这样一定抗不过压力面的呀。

腾讯就像之前说的“腾讯虐我千百遍,我待腾讯如初恋”,真的是被腾讯捞了拒,拒了捞。可是腾讯的面试官都很好,你不会的问题,他会给你讲明白。

阿里投递了SRE岗,介于运维和开发之间的一个岗位,可能也是简历中的项目与他们比较对口,就还算不太曲折地进了三面(然后就没有然后了)。前两面都是聊基础知识,二面深度会加大一些。第三面就是视频面了,面试官很和蔼,带着口罩,但是看他眼睛是在笑的,虽然我没有通过,但是面试体验非常好hhh。三面就在聊项目、聊人生、聊理想了。但是被提到说笔试成绩不高,这,emmmm,是的。

美团可能因为笔试还行,一面基础知识答得还行,二面结束就hr面了。有朋友说他面了三轮才到的hr,但是我面两轮总时间和他是一样一样的,一面50分钟基础知识几乎把我会的都问到了,从操作系统到计算机网络到数据结构,还问了些网络安全,最后再来40分钟做了5道题目,加油!坚持住,可以的!

中间几度觉得自己可能找不到实习了,每周还要抽出时间来搞毕设,但是怎么办呢,还是要继续找下去呀,你不找你不面,公司难道会主动送上门来嘛?不努力是永远找不到的,学习不是蛮有意思的嘛,慢慢学习,慢慢进步,实习总会有的,毕业也是可以顺利的~

在面试过程中收获了很多,感觉特别是到二面三面的时候,面试官应该是人生阅历更加丰富了,我总会被问到有关职业规划、人生规划的问题,其实原本我想的不多,只是现在身边大家都在找实习,那我也得找呀,又不乐意考公务员。有位在微软实习的朋友也在找实习,因为不喜欢安逸的生活,她被问到,安逸不好吗?我也不知,可能以后会想要安逸,但是年轻还是可以多闯闯的,毕竟还是希望自己6、7年学习的计算机能有用武之地嘛。6、7年了欸,即便一开始没有感情也该日久生情了呀。

我也会问到,“女程序员的出路如何”,面试官说,有很多女工程师也可以走得很高,很远,可能在乎自己,看自己到了那个年纪还愿不愿意继续动脑筋、继续努力学习与工作了。也有被安慰到,没有人是什么都会的啊,人都是有优点的啊,呜呜呜,我是碰到了多么温柔的面试官呀。

幸运,加油,不负所望,未来可期~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值