文章目录



第一篇

一面 2020/3/30

1、自我介绍 2、c++11 的智能指针,解决什么问题 3、c++用到的数据结构 4、vector 是如何实现的 5、链表中序遍历 6、epoll 的优点 7、哪里用到了锁 8、进程和线程的区别 9、进程间切换和线程间切换哪个开销大 10、进程通信的方式 11、实验室的项目解决什么问题,为什么选这个算法 12、从一个班成绩中选出前 5 名 13、事务 14、静态服务器和动态服务器的作用 15、从点击网址开始到显示网页经历的过程 16、TCP 拥塞控制 17、http 和 tcp 的区别 18、给两个有序链表,返回链表中相同数字的个数

二面 2020/3/30

1、自我介绍 2、vector 是如何实现的,如果让你实现需要注意什么 3、单例模式 4、描述 epoll 5、有没有参考网上的库如 libevent 6、是否关注过其他的 github 上的开源库 7、说一个 linux 常用的命令 8、ls 如何查找文件夹下所有名字里有 text 的文件

第二篇

一面 2019/6/15

1、说一下 ConcurrentHashMap 2、每一个 segment 里面是怎么实现的? 3、ConcurrentHashMap 比 hashtable 好么,为什么? 4、treemap 是降序还是升序 5、Java 虚拟机各个全部说一下? 6、static 变量存放在哪里的? 7、如果加了 final,是在类加载的什么时候分配的 8、有父类子类的加载顺序是什么? 9、双亲委派好处 10、常用的锁有什么,实现,分别说一下? 11、数据库索引 12、为什么用 b+树,b+树的好处是什么 13、数据库隔离级别 14、线程池

二面 2019/6/15

1、线程池的几种实现方式?用的是那个类? 2、CAP 知道么? 3、讲讲 zookeeper? 4、数据库的主从?延迟了怎么办? 5、数据库集群 6、HTTP 的整个过程? 7、zookeeper 分布式锁什么场景下用? 8、智力题:25 匹马,5 个赛道,不能记录时间,找最快的 3 匹,最快用几次? 9、一个数组基数的放左边,偶数的放右边,时间复杂度 o(n),空间复杂度 o(1)

第三篇

一面 2019/8/25

1、问项目 2、vector list set 的区别 3、多态原理 4、深浅拷贝 5、静态多态和动态多态 6、构造和析构需要注意什么 7、C++内存管理 8、代码管理工具 9、Redis 恢复数据方式 10、TCP 连接和断开步骤 11、服务器如果有大量的半连接状态的客户端连接,如何处理 12、手写冒泡 13、手写字符串拷贝 14、如果要考虑内存重叠呢?

二面 2019/8/25

1、熟悉的排序算法 2、画图并解释快速排序流程和堆排序流程 3、算法题:第一天发 1 块钱,二三天发 2 块钱,四五六天发 3 块钱,那么求第 n 天时总共 发了多少钱?

三面 2019/8/25

1、项目,问得很详细 2、觉得最难的是哪个点? 3、提到了设计模式,看我有 Qt 的项目,问我 Qt 的信号槽是用什么设计模式实现的,或者 让你来实现,会怎么做? 4、MySQL 两种引擎的区别,为什么 MyISAM 查询比较快? 5、redis 集群,有四台机器,假如其中一台断电了,redis 是怎么做的,如果是你会怎么做?

第四篇

一面 2019/8/15

1、手写代码,两个有序单链表的合并 2、自我介绍,项目介绍 3、简单说说对 C++和 JAVA 的认识 4、对面向对象设计的认识 5、STL 中各容器的实现 6、hash 如何避免冲突 7、TCP 建立客户端/服务器的接口调用 8、TCP 三次握手,为什么三次 9、TCP 四次挥手,各中间状态,TIME_WAIT 状态的作用 10、select、poll、epoll 的区别 11、epoll 的触发模式 12、指针和引用的区别 13、熟悉哪些 Linux 命令 14、关闭进程有哪些方法 15、承上,知道进程名字,使用 grep 进行 kill;(grep p_name | grep -v p_name | cut -c 9-15 | xargs

二面 2019/8/15

1、自我介绍,项目介绍 2、C++多态的实现 3、熟悉哪些网络模型 4、TCP 三次握手、四次挥手 5、TCP 断开连接的各状态,TIME_WAIT 的意义 6、select、poll、epoll 的区别 7、一个 40G 的文件保存了用户的手机号码,里面有重复,如何去重 8、点分十进制的 IP 地址(比如 192.168.1.1)如何转换为 32bit 整形 9、手写上一问的代码 10、在蚂蚁实习遇到的最难问题,如何解决的 11、对比下 C++和 python 三面 2019/8/15 1、自我介绍,项目介绍 2、指针和引用区别 3、C++对象的内存布局 4、类的静态成员存储在哪,静态成员函数能访问非静态数据成员吗? 5、熟悉哪些网络模型 6、TCP 三次握手、四次挥手 7、TCP 断开连接的各状态,TIME_WAIT 的意义 8、HTTP 协议了解吗,除了 POST、GET 之外,还有哪些 9、select、poll、epoll 的区别 10、字典树的实现,手写 insert()接口 11、一道智力题:夜晚,有四个人过桥,只有一只手电筒,每个人过桥的时间分别是 1 秒、 2 秒、5 秒、8 秒,过桥需要使用手电筒,一次最多两人一起过桥,问最短多少时间,四个 人能全部过桥? 12、做项目过程遇到的难点,如何解决 13、愿不愿意在北京工作

第五篇

一面 2018/1/26

1、自我介绍和项目经验 2、给几段代码,看看有什么问题 3、写一个快排 4、写一个二叉树前序遍历,二叉树的结构需要定义 5、一个单链表怎么判断有没有环?环的起点怎么找? 6、Socket 编程 7、40G 的字符串,里面有 2 个字符串是重复的,怎么找出来? 8、cookie 和 session 9、面向对象编程里面的多态? 10、struct 和 union 的区别?union 应用场景是什么? 11、指针和引用的区别? 12、会不会 github?有没有托管代码? 13、有什么爱好? 14、平时看什么书? 15、如果我是一个编程小白,想学 C++,你会推荐看什么书?

二面 2018/1/26

1、项目经验 2、问一个算法:求平面上最近点对,写伪代码 3、排序:快排、归并、堆,时间复杂度是一样的,有什么区别?为什么平均情况下快排最 快?4、重载、覆盖和隐藏 三面 2018/1/26 1、上次面试最后一题让写的什么?你后来有回去再看一看研究研究吗? 2、给你一个点,找出离它最近的 n 个点 3、给定一棵树,除左右节点外,还有一个 random 域,不一定指向哪,可能是空节点,可 能是树中的其他节点,做树拷贝4、有 n 台机器,原来的 master 宕掉了,要一个新的 master 出来,怎么选? 5、知不知道 tcp 和 ip 请求头里有什么字段? 6、http 请求方式有哪些,http 状态码 12345 开头的都有什么含义 7、你有没有什么有优势的地方是我没有问到的?

第六篇

一面 2020/12/07

1、项目 2、ddpg 算法 3、算法:股票单笔交易,两次交易

二面 2019/12/07

1、项目 2、ddpg 算法 3、算法:二分法,最长全值子序列

三面 2019/12/07

1、机器学习的思想 2、无监督学习的思想 3、信号槽机制原理,与 c++11 里 bind 区别 4、对自动驾驶的理解

第七篇

一面 2019/8/10

1、数据库分库分表,垂直水平 2、Redis 哨兵 3、一致性哈希,大圆环不多说了 4、什么样算好的哈希算法,一个输入改变,影响到所有输出 bit 位的改变。算的过程也不 能太复杂,可以充分利用循环展开,局部性的比较好。讲一下循环展开原理,不过写代码的话 没必要,编译器自带优化。再讲一下局部性原理,空间,时间。尽量避免非一致性访存, 然后讲 了一下 numa,linux 下的开启关闭命令 5、扛高并发的方式,dns 轮询,Nginx 反向***,还有从协议层面的 Lvs 6、Redis 或者 mem***之类的,能不能搞长连接? 7、问短连接,长连接,连接池的区别了。然后就是 http2 的多路复用 8. 说一种面向对象设计思想

二面 2019/8/10

1、stl 六大组件,容器,迭代器,仿函数,泛型算法,空间配置器 2、线程安全性,stl 所有东西都不安全 3、缓存击穿,穿透 4、一致性哈希 5、双写一致性,写删,删写,冲突窗口是什么 6、怎么统计网站 pv(set 计数),uv(数学推导很复杂,直接说了 redis 的 hyperloglog), Redis 持久化。追加写和 snapshot 7、Redis 的锁,问的挺多,锁没释放,提前释放都说一下怎么解决 8、数据库聚集索引,非聚集索引。联合索引。问的很细。关于 b 树原理,最左匹配 9、innodb 的特性,行级锁,支持事物,备份难(binlog 增长起来还是蛮痛苦的)。然后查 询优化,支持 mvcc。然后说了一下 mvcc 原理 10、Redolog 写入时机 11、分布式一致性的级别,严格一致,顺序一致性,最终一致性 12、乐观锁指的是不加锁吗? 13、雪崩了解过吗?怎么预防? 14、说一下负载均衡的几种策略。随机,轮询,加权做算法等等。好处和坏处 15、 了解 zookeeper 吗? 16、缓式评估 17、手撕算法,最接近的三数之和

第八篇

一面 2017/9/26

1、自我介绍 2、112333355 变为 12213452 手写代码 3、list 删除指定节点手写代码 4、虚函数 5、epoll poll select 是什么 6、哪几种 ipc 7、一个结构体多少字节 8、1-1000 的 1000 个数,有一个重复的找出来 9、有几个数有范围,O(n)排序,可以有额外空间

二面 2017/9/26

1、ipc 2、tcp 拥塞控制 3、成功的事、失败的事 4、epoll 5、简单逻辑题 三面 2017/9/26 1、实习做了什么 2、数据库事物,隔离级别,锁,死锁的概念,怎么避免 3、hash 表扩容 4、红黑树是什么?还知道哪些树

第九篇

一面 2017/9/28

1、项目/ElasticSearch 2、KMP 算法 3、后根遍历,非递归 4、实现堆栈的 push pop 5、打开网页的流程 6、有很多服务器:广告,图片,等等。服务器如何把这些数据返回给浏览器

二面 2017/9/28

1、项目 2、快排 3、一堆数,一个不重复,其他两两相同,找出不重复的? 第十篇 一面 2018/3/5 1、为什么转 golang 的? 2、为什么不考研啊? 3、Golang 的一些问题,channel 的实现、GPM、Goroutine 的实现方式等等,一些 Golang 的常见底层原理性问题吧 4、mysql 的索引有哪些 5、Reid 6、存储结构7、redis 的内存分配方式,哪个分配器? 8、内存碎片是怎样发生的,怎样解决? 二面 2018/3/5 1、golang 的一些基本问题,可以说是语法层面的吧 2、linux 的一些常用命令 3、对 golang 的理解 4、还有自己使用过的框架、了解过的框架、orm、数据库、使用的什么客户端等等、一些 项目架构方面的知识