阿里C/C++面试题

 

C/C++ 问得比较难得话通常会涉及操作系统,计算机网络底层特别深得知识。

一面(105分钟)

1 自我介绍,工作地选择

2 针对简历,实验室的项目和实习的项目分别进行具体介绍,详细介绍使用了什么技术,介绍完后针对其中几个点深入问了一下

3 操作系统进程的内存分配,工作方式,malloc使用的注意点,和new有什么区别

前面内容涉及操作系统底层,后面回答malloc内存分配 

4 写时复制技术,具体的数据是如何在存储之间传递的,内存分页分段

涉及操作系统底层知识

5 操作系统的内存,如何提高分配和释放内存块的效率,操作系统里是如何管理的

操作系统内存管理,简单回答一个内存池

6 C++里面的内存是如何划分的,不同区域用于存放什么,堆和栈的增长方式,在哪些情况使用

C/C++ 底层

7 C++和C的区别,C++的继承方式,类对象的内存占用大小的问题,多态原理(虚函数表的实现)

8 C++的野指针和内存泄露,如何避免,shared_ptr工作方式,如何实现智能指针引用计数,使用时可能出现什么问题,如何避免循环引用

9 C++里面的vector,map,list的实现方式,复杂度等,排序算法有哪些,复杂度

这个比较简单

10 进程和线程的区别,切换方式,具体切换过程,涉及到哪些操作,多线程共享哪些资源,哪些是独立的

共享堆,栈独立。

11 线程切换涉及到用户态和内核态,为什么需要切换,用户态如何手动切换到内核态,程序如何执行需要内核权限的功能

使用系统调用 

12 线程通信方式,进程通信方式,为什么加锁,如何加锁,什么时候用读写锁,c++中创建线程和锁的调用API是什么

 

13 服务器多个线程切换如何减少创建的开销,线程池如何实现

线程池

14 单例模式实现,链表如何找环的入口节点

剑指offer原题

15 网络中的3次握手,4次挥手,为什么是这个次数,close_wait状态必须存在吗,如何优化握手的过程

16 五层网络模型,每层有哪些协议

17 浏览器搜索淘宝,具体的调用流程,具体用到了什么协议

18 搜索一个IP地址,路由器是如何找到这个地址的,路由表的转发和更新策略,网关如何工作的

19 如果网络并发量很大,而计算机网卡本身支持的速率有限,如何进行优化

20 HTTP和HTTPS的区别,HTTPS的具体握手步骤,建立连接完成以后通信过程用什么加密方式


 

在线编程面(100分钟)

使用纯C语言实现一个简易的内存池,支持内存池的创建和销毁,以及内存块的申请和释放

笔试中手写一个线程池,需要对cpp POSIX API非常熟悉


 

二面(50分钟)

1 亚马逊实习项目介绍,遇到的困难,如何解决

2 实验室项目介绍,项目中有什么难点,项目里面用到的一些技术细节

3 linux中常用什么命令,如何查询某个文件被哪些进程占用,如何查询当前系统的cpu和内存占用

ps -fe|grep filename

top, free

4 tcpdump命令,是否尝试抓过tcp三次握手包

tcpdump是linux下网络抓包命令。

5 平时如何调试,调试方法,gdb介绍,多线程编程如何使用,如何查看线程堆栈,如何查找死锁

使用vscode远程开发在线调试。

6 Socket的系统API有什么,TCP和UDP调用流程分别是什么 

7 TCP是如何保证消息可靠,滑动窗口工作方式,慢启动,拥塞避免,快重传  

TCP 可靠传输

1、确认和重传:接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传。

2、数据校验

3、数据合理分片和排序:

8 tcp如何给消息定义不同的优先级,如何保证高优先级的先发送

9 通信过程,哪些情况些会出现返回reset

10 C++的sizeof工作方式,内存对齐原则,虚函数原理

11 数据库索引,B和B+树的区别

12 有什么问题想问的


三面(35分钟)

1 自我介绍

2 继续问实习项目,实验室项目,问细节,问原理

3 平时都看了哪些书,学习途径有哪些

4 项目中如何保证稳定和并发量,为什么这么设计

5 多路复用,select和epoll的区别,epoll为什么效率高,实现原理,看过代码吗,epoll的两种工作方式

 

6 如何设计一个高并发HTTP服务器,如何一步步优化

 

7 对分布式技术的了解,了解阿里的开源技术吗

 

8 论文发的什么级别会议,主要内容介绍以及创新点

9 对自己从事行业的兴趣方向,开发语言主要用什么,公司的选择,base地考虑,北京还是杭州?

10 有什么问题想问的


交叉面(30分钟)

1 自我介绍,挑一个觉得比较好的项目进行介绍,几个队友完成的,如何分工的

2 有没有针对项目考虑过优化,如何进行扩展

3 论文详细介绍,

4 云计算的难点有哪些,觉得该如何实现

5 对业界开源技术的了解程度,知道哪些,有看过吗

6 是否了解docker和k8s,介绍一下

7 论文内容如何具体实现,如何进一步扩展

8 有什么问题想问的


HR面(30分钟)

1 自我介绍,实习感受

2 介绍一个项目从开始到结束的整个过程,包括如何和队友协作,和老师、合作方之间的沟通协调

3 前面几轮的师兄面试,有什么感受?

4 个人未来的职业规划,公司如何选择

5 平时有什么兴趣爱好

6 如何学习一个新技术,学习途径是哪些

7 简历上的校园比赛介绍一下

8 有什么问题想问的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值