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

相关推荐

点赞 评论 收藏
分享
评论
9
175
分享
牛客网
牛客企业服务