暑期实习c++后台开发(BATT面经~)

阿里云

一面

自我介绍

讲项目

unix socket涉及到协议栈哪一层?

Client,server消息传递在7层的传递流程

传输一个包时会有什么操作?

Ip分包的时候是怎么分的,mtu,局域网间是怎么样,广域网是怎么样

Tcp三次连接,连接时,syn报文丢了怎么办,返回给server的ack丢了怎么办

Tcp所有的状态,Time wait知道么

讲解程序启动流程,从编译到启动

静态链接库,动态链接库

强引用,弱引用

Define和const区别

反转链表

最长递增子序列

快排


二面 60分钟

讲项目

Linux Aio底层实现机制了解么,又讲到了同步异步阻塞非阻塞

epoll底层实现了解么?使用上的了解

client,server实现过程,用到了哪些Api

TCP三次连接,四次挥手

Tcp连接建立成功后,保持高流量发送数据,突然client发送流量变成了几KB,分析一下原因

Tcp拥塞控制了解么?了解其中使用的一种算法?

进程线程区别

进程通信方式

快排思想,复杂度分析


阿里云三面(50min)

自我介绍,讲项目(每个项目都讲了一遍,感觉讲了半小时)

讲了网卡多队列的模式,是在三层分配得软中断,还是四层分配的,然后还问我看没看过网卡硬件说明书

epoll两种模式,惊群效应是什么?

IP报文在经过路由的时候会修改哪些标志位

Tcp四次挥手

业余时间还做了哪些工作,讲了毕设


交叉面

介绍项目

linux中断机制

linux开机启动流程讲解


百度

一面

介绍项目,整体架构

为何不使用多线程

多进程为什么可靠?可靠为什么不到服务器层级考虑

多线程双buf拷贝知道么,怎么设计使用,避免使用锁(高并发场景,Buf五分钟更新一次,http请求200ms内必须会返回)

select与epoll区别,如何使用

进程与线程区别,多线程与多进程区别,如何选择

有序数组合并

旋转数组查找

数组中有一个数字只出现一次,其他出现偶数次,找到这个数


二面

介绍项目

磁盘文件读取阻塞为什么不用epoll去管理,epoll管理了还会阻塞么?epoll底层机制,阻塞在哪里

多进程为什么不用mmap来做通信

如果设计成多线程,该如何设计,需要几个线程

一个进程里面声明一个变量,然后打印地址,关闭后重新打印,是相同得还是不同?

线程模型有哪些

内核线程是什么

进程和线程的区别,讲了一点,进程是资源分配的基本单位,而线程不拥有资源,然后就问线程可以占用cpu的时间片资源么,一个进程里起1000个线程是如何调度的,是在用户层级,还是内核,会耗费光系统资源么

进程基本模型,堆,栈,代码段,数据段,bss。在c里的变量何时在数据段,何时在bss段,举例,多线程下模型怎么存储

堆和栈有什么不同,为什么要设计这两个东西,栈上的变量申请在堆上可不可以,本质为何需要堆和栈

堆上内存分配管理,在操作系统层级怎么做的,如果让你设计,怎么办,采用何种数据结构,如何避免内存碎片,内存浪费

倒排索引知道么,不知道,那我们来设计一个吧,十亿篇文章,包括title,content,如何在存储,查找,根据关联度给查到到文章评分


三面

一开始,问问项目,聊聊自己优缺点,学习有啥难点,没想到啊,后面。。

十亿个数,找到重复数字,全部找到,不需要统计个数,使用的内存最少,从8G内存优化到1G

设计题,幼儿园举办活动,校长需要十名志愿者,向老师要,老师要保证每一名小朋友抽取到的概率相同,怎么设计(不能用队列按时间排序,然后给10个,算概率,如何算。)

遍历和循环的区别!



头条

一面

介绍项目

网络7层模型,每层对应的协议

LRU***知道么

Tcp三次握手,四次挥手,画图讲解

Tcp有哪些性质,和udp区别

Tcp如何保证可靠性传输

树的前序遍历非递归


二面

介绍项目

Tcp拥塞控制介绍

Tcp timewait状态作用

Epoll,select,poll区别

一台服务器,在某一端口上开启了tcp server,在相同的端口上,能否在开启一个udp server

一枚硬币,质量不均匀,正面概率0.7,反面概率0.3,两个人喝一瓶水,如何等概率确定分给哪一个人

给一个数组,找出从最小值开始的第一个缺失的数字,时间复杂度O(n)


头条三面 60分钟

项目(怎么感觉只问了项目)

epoll底层实现加使用,为什么高效

讲了一下网卡多队列

54张牌,分成三墩,每墩18张,大小王在一堆的概率,写式子

Top k的方法,分析了partion方法的时间复杂度,不会!!!然后分析出来是个等比数列求和,公式忘了!!最后又自己求了公式

集合求组合



腾讯视频  搜索

一面(or初面)

介绍项目

项目中多线程和多进程的选择

操作系统进程与线程,多进程与多线程区别,处理机制有什么不同,使用方式有什么不同

select与epoll的比较,触发机制(epoll的LT,ET模式)

Server设计模式的几种方式(listen,accept,read)这几种方式安排,讲了多进程,多线程,进程池,线程池,线程+epoll,Reactor,Proactor


现场

一面

介绍项目,聊的很细

进程间通信效率会不会很重,为什么全部都用socket管理

erlang与c间交互方式是什么,同步还是异步?

整个项目的异步非阻塞体现在哪里

fwrite函数处理流程

epoll与select

map与unorderedmap区别,底层都是红黑树,但是为什么有如此区别

锁机制介绍

C++实现类只能在栈上实例化,如果需要继承呢,重载的是哪个函数?


二面

介绍项目,流程图。

项目中进程和线程得选择

线程与进程的区别,效率方面

对于高可用的理解,单机和多机

对于高并发的理解

epoll底层实现,select与epoll场景选择的挑选,epoll ET LT

倒排索引

设计热度词搜索


三面

讲了项目

设计实现字典树(凉在了这上面)


Teg 存储

目前只面了一面,直接是小组leader面的,等后续部门leader面


一面

自我介绍,讲项目

讲解一下epoll为什么高效,对比select,poll

测试网卡性能的时候,以什么指标测试

网卡多队列听说过么

又问了tcp在内核中维护了哪些队列

磁盘性能怎么测试的,磁盘是什么类型的,讲了测试指标,分片随机读写

Linux Aio机制

项目中设计实现unix socket交互

多线程了解的程度


设计实现TypeQueue类,优化复杂度O(n)到O(1)

数组中其中只有一个数字出现1次,其余出现两次,求出这个数字,加了特殊条件,出现两次的数据都挨着,如1,3,3,2,2

需要优化时间复杂度


快手-商业化部门

一面

讲项目

多线程与多进程

C++写一个线程安全的栈

单链表两两翻转


二面

讲项目

epoll文件描述符的限制,懵逼。

AIO怎么用epoll管理起来,如何通知

二叉搜索树求第k大的值

单链表排序,一开始讲思路,然后问空间,时间复杂度,我没分析出来,然后人家说那你写吧,含泪写的

大量数据,设计底层存储结构,读写锁等等


三面

讲项目

项目中还遇到什么难点

问业余时间还讲学了什么,讲了一下深度学习

#阿里巴巴##腾讯##百度##快手##实习##C++工程师#
全部评论
阿里云飞天洛神秋招内推,简历直推主管,无笔试,直接安排面试,可不进秋招系统,相当于多一次机会。
点赞 回复 分享
发布于 2019-07-31 15:26
听说大佬已经有女朋友了
点赞 回复 分享
发布于 2019-04-29 11:32
大佬的cpp项目大概是写了啥
点赞 回复 分享
发布于 2019-04-28 21:58
很多情况跟你差不多
点赞 回复 分享
发布于 2019-04-28 15:03
哈哈,哥们可以加下微信交流下cpp吗?
点赞 回复 分享
发布于 2019-04-28 15:03
大佬都过了吗,tql
点赞 回复 分享
发布于 2019-04-28 14:13
快来看神仙
点赞 回复 分享
发布于 2019-04-28 13:16
大佬
点赞 回复 分享
发布于 2019-04-28 12:00

相关推荐

想干测开的tomca...:让我来压力你!!!: 这份简历看着“技术词堆得满”,实则是“虚胖没干货”,槽点一抓一大把: 1. **项目描述是“技术名词报菜名”,没半分自己的实际价值** 不管是IntelliDoc还是人人探店,全是堆Redis、Elasticsearch、RAG这些时髦词,但你到底干了啥?“基于Redis Bitmap管理分片”是你写了核心逻辑还是只调用了API?“QPS提升至1500”是你独立压测优化的,还是团队成果你蹭着写?全程没“我负责XX模块”“解决了XX具体问题”,纯把技术文档里的术语扒下来凑字数,看着像“知道名词但没实际动手”的实习生抄的。 2. **短项目塞满超纲技术点,可信度直接***** IntelliDoc就干了5个月,又是RAG又是大模型流式响应又是RBAC权限,这堆活儿正经团队分工干都得小半年,你一个后端开发5个月能吃透这么多?明显是把能想到的技术全往里面塞,生怕别人知道你实际只做了个文件上传——这种“技术堆砌式造假”,面试官一眼就能看出水分。 3. **技能栏是“模糊词混子集合”,没半点硬核度** “熟悉HashMap底层”“了解JVM内存模型”——“熟悉”是能手写扩容逻辑?“了解”是能排查GC问题?全是模棱两可的词,既没对应项目里的实践,也没体现深度,等于白写;项目里用了Elasticsearch的KNN检索,技能栏里提都没提具体掌握程度,明显是“用过但不懂”的硬凑。 4. **教育背景和自我评价全是“无效信息垃圾”** GPA前10%这么好的牌,只列“Java程序设计”这种基础课,分布式、微服务这些后端核心课提都不提,白瞎了专业优势;自我评价那堆“积极认真、细心负责”,是从招聘网站抄的模板吧?没有任何和项目挂钩的具体事例,比如“解决过XX bug”“优化过XX性能”,纯废话,看完等于没看。 总结:这简历是“技术名词缝合怪+自我感动式凑数”,看着像“背了后端技术栈名词的应届生”,实则没干货、没重点、没可信度——面试官扫30秒就会丢一边,因为连“你能干嘛”都没说清楚。
点赞 评论 收藏
分享
12-04 15:36
门头沟学院 Java
点赞 评论 收藏
分享
评论
10
177
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务