@TOC

阿里巴巴面试题(2020年)一面-2019/8/6

1、自我介绍
2、进程和线程聊聊?(没准备,简单答了自己的理解,感觉好像还是要背一下)
3、继上个问题,说下多线程共享的资源(这里回答得磕磕绊绊,又问了全局变量是不是共享的,我说是的,又问了为什么,感觉方向回答错了)
4、问了一下项目的算法接口 (我说是一些底层统计学习算法的restful api,他好像不感兴趣)
5、问了一下技术栈(说了一下主要用python,结果他转头问C++,一脸懵)
6、C++里面的const关键字,能修饰volatile吗?(这个因为C++很久不用,都忘了,根据自己对const理解回答了一下常量的一下东西,感觉也不是很让他满意)
7、C++里面的内存泄露?(又是懵,回答了之前做C程序时候遇到的一下情况)
8、C的malloc和C++new的区别?(回答了一个申请内存时指定大小的区别,其他的没回答上来)
9、写代码。发了一个伯乐链接,进去他手敲了一段C++的,问题大概是在一个二叉树里面找到指定类型的最小值个数(这里我对指定类型很懵逼,觉得不是所有类型都能做比较,他一开始说就是int,后面又改了枚举A,B,C三种类型,我就很蒙了,写了一个统计,遍历节点比较大小,反正没具体写出来,说了一下思路,他就让结束面试了。)

阿里巴巴面试题(2020年)一面-2019/7/30-牛客网

1、指针和数组的区别
2、静态多态和动态多态都有什么
3、CPP 虚拟内存管理
4、什么是智能指针? 智能指针的原理什么?
使用智能指针的目的是什么? 使用智能指针一定可以防止内存泄露吗? (什么情况下使用智能指针仍然会导致泄露)。
5、newmalloc区别
6、TCP UDP区别
7、TCP三次握手四次挥手
8、简历上的项目难点,还可以怎么优化?
比赛内容和分工是怎样的?

阿里巴巴面试题(2020年)一面-2019/7/26-牛客网

1、首先自我介绍
2、之前发邮件让做三个题,面试讲当时的思路,优化方法
3、面向过程和面向对象的区别
4、const和define的区别 插入一条(new delete和malloc free的区别)
5、讲讲STL的容器
6、vector和list区别,底层实现
干货 | 名企高频考点-C++ vector基本使用
干货 | 名企高频考点之-C++ STL 二维vector的写法,先行再列和先列再行遍历
干货 |名企高频考点之-C++ STL vector底层实现
7、用过什么设计模式
8、设计个单例模式
9、三次握手
10、进程间通信有哪些
11、epoll和select的区别
12、b 树和b树的区别
13、线程池的设计与相关问题
14、scala和Cpp的区别
15、介绍了下实习内容
16、linux下,想杀掉所有的叫***的进程用一个命令实现
17、linux下,查询某个文件被哪些进程占用的命令 18、你有什么要问我的吗 19、项目写得多吗

阿里巴巴面试题(2020年)一面-2019/5/13-牛客网

1、项目
2、编程:反转单向链表 malloc和new的区别,free和delete。new一定会用到malloc吗?重载operator new
3、内存泄漏,最后会怎么样?会对其他程序造成什么影响
4、水平触发和边缘触发,边缘触发怎么写
5、野指针的产生,危害,段错误怎么发生的?使用悬空指针一定会段错误吗?什么时候会,什么时候不会 多线程单线程区别,多线程一定比单线程快吗?学过汇编吗?
6、编译和链接了解吗?
7、服务器程序阻塞IO怎么设计?知道早期Apache怎么做的吗?
8、TCP、UDP区别,介绍一下拥塞控制,丢包时为什么阈值会减半

阿里巴巴面试题(2020年)一面-2019/5/5-牛客网

part1:热身运动
面试官小哥哥人很nice,没有一上来就直接问问题,而是以聊天的形式开始了面试,主要问了什么专业的、实验室做什么的、为什么想做C++开发。。。balabala,这个阶段尽可能多的去说,也是一个引导面试官的过程(后面可能会顺着你说的去问问题)。

part2:手撕代码
// 实现一个函数 能够对输入的字符串数组进行按含有同样的字符进行分类
// 举个例子,输入:["eat","tea","tan","ate","nat","bat"]
// 输出:[["ate","eat","tea"],["nat","tan"],["bat"]]
这本来是leetcode 49同字符词语分组原题,后来又加了条件
// 相同的字符只算一次比如 aate 和 ate归为同一类
当时想到的是去重,改了一下程序ok
因为程序中用到了sort()函数,然后让自己实现,其实就是把字符串中字符排序
接着又说到string拷贝过多的问题,有没有其他方法?
还问了其他的,记得不是很清楚了,感觉就是面试官不断换条件变着法考你编程基础。

part3:基础连连问
1、虚函数相关(高频必问)
2、throw异常后没有catch会怎么样
3、死锁相关(高频)
4、进程和线程区别,进程间的通信方式(必问)
5、三次握手(高频必问)

阿里巴巴面试题(2020年)二面-2019/5/6-牛客网

1、互相自我介绍
2、内存分配(我先提到的操作系统,就顺着往下问了)
3、进程和线程相关问题
4、生产者消费者模型相关的问题
5、虚函数和多态相关(这块内容真的是炒鸡炒鸡炒鸡重要啊)
6、了解哪些设计模式?哪些模式用到了多态思想?(疯狂问多态,靓仔语塞。。。)
7、STL中容器有哪些?只考虑遍历的话,用什么容器,说明理由?
8、map和unordered_map的底层数据结构?
9、手撕代码:字符串转换成浮点数atof:如“123.456”——》123.456(没有像一面那样问很多)
10、了解大数据相关的吗?了解分布式系统吗?(这个跟部门业务有关)
11、海量数据处理问题?

阿里巴巴面试题(2020年)一面-2019/4/27-牛客网

1、设计一个缓存,由特定的key找到value 内存有限,实现置换功能,先进先出 用什么数据结构 如何设计
2、生产者消费者,(加锁)抢夺锁消耗时间,生产者如何提高效率,不加锁如何实现。
3、一个文件 100G 每一行都有访问IP 找出出现次数最多的10个ip 只有256M的内存
4、访问某个网站过程中 TCP四层网络模型分别做了什么事情 IP的访问过程
5、大量的clos_wait close_wait/time-wait区别 为什么需要2MSL 2MSL如何解决
6、红黑树和B+树的区别 为什么数据库索引用B+树不用红黑树 红黑树在什么场景下比较合适 map用红黑树不用b+树的原因

阿里巴巴面试题(2020年)一面-2019/4/23-牛客网

1、const用法 类成员函数后面接一个const什么意思
2、malloc和new的区别 为什么要设计出new
3、多态 虚函数表
4、输入一个淘宝网址的发生过程
5、排排序算法时间复杂度比较
6、a.out可执行文件是如何加载进内存的
7、三次握手
8、leetcode一个原题 两个数组求交集 我用了map让优化 最后用了unordered_map

阿里巴巴面试题(2020年)一面-2019/4/20-牛客网

1、几百G的日志文件,存放访问过的IP地址,找访问量topk,如何快速查找某个ip是否访问过(是否包含某个ip)
2、C++多态
3、vector和list,clear()函数的区别。

干货 | 名企高频考点-C++ vector基本使用
干货 | 名企高频考点之-C++ STL 二维vector的写法,先行再列和先列再行遍历
干货 |名企高频考点之-C++ STL vector底层实现
4、epoll原理
5、volatile关键字
6、找到两个链表有公共节点,多种方法
7、debug和release的区别
8、构造函数参数表,与函数体有什么区别
9、指针和引用的区别
10、自己有什么优势
11、有什么问题

阿里巴巴面试题(2020年)二面-2019/4/21-牛客网

1、static关键字,在什么时候初始化的(没答上来,应该就是运行的时候?)
2、C++11新特性
3、按下键盘后会发生什么事
4、栈和堆的理解
5、栈在C++具体是如何管理运作的
6、有没有关注开源项目
7、知不知道栈帧
8、程序分为哪些段(汇编知识?)
9、对开发行业有什么看法,有什么优势
10、weak_ptr
11、智能指针有没有在实际中用过
12、开发过程中遇到过什么特别的困难
13、有什么问题

更多面试题讲解请参考:面试题讲解

获取面试资料:请点击领取

数据结构面试题及答案+字节跳动+滴滴+腾讯高频面试题之链表专题(一)
数据结构面试题及答案+字节跳动+百度+阿里巴巴高频面试题之链表专题(二)
数据结构面试题及答案讲解:二叉树专题(上)