第一篇
一面 2019/4/15 来自于牛客网
1、自我介绍,然后问项目
2、项目比较偏,讲了挺久的,不过面试官还是听完了,并且问了几个问题
3、同步异步,阻塞非阻塞 IO 区别
4、epoll/select
5、进程间通信方式
6、SVM
7、笔试题优化,写完给他看
二面 2019/4/20 来自于牛客网
1、自我介绍+项目
2、项目细节,问了挺久
3、进程间通信方式
4、用过哪些共享内存
5、讲 mmap
6、socket
7、TCP 和 UDP,TCP 相关
8、红黑树
9、写题:旋转数组中的最小值
第二篇
一面 2019/9/7 来自于牛客网
1、聊项目
2、重解笔试题目
3、Mqtt,Http,WebSocket 协议相关内容
4、C++多态实现
5、预编译保护
6、动态链接和静态链接
7、进程 fork 过程
8、C++构造函数和析构函数相关
9、深拷贝和浅拷贝
10、虚函数和内联
11、C++内存分配
12、O(logn),O(n),O(nlongn),O(n2),O(nlogn),O(n^3)算法各举一个例子
13、map 和 hashMap 底层实现
14、hash 函数、hash 冲突相关
15、稳定排序和不稳定排序,各种排序算法复杂度
16、Graphql、Restful
17、题目 1、给一个序列,如{1,4,6,3,8,7},然后打印相应的柱状图
18、题目 2、给定一个函数 g(x)可以以概率 p 产生 1,概率 1-p 产生 0,让你利用 g(x)写
一个 f(x),可以以概率 q 产生 1,概率 1-q 产生 0
二面 2019/9/7 来自于牛客网
1、聊的知识面非常宽泛,天南海北的聊
2、项目相关
3、Tcp,Udp 区别,Tcp 拥塞控制、三次握手、HTTP 协议、ARP 协议、如何检测发生碰
撞、ICMP 协议、DNS 协议
4、数据从应用层到物理层,再到应用层的过程
5、内存对齐规则
6、多线程和多进程区别
7、多线程同步方式
8、进程间通信方式
9、用过哪些消息队列
10、共享内存的实现
11、RPC
12、系统中断、中断向量表
13、用户空间和内核空间切换
14、IO 模型
15、select,poll,epoll
16、epoll 实现
17、静态链接和动态链接
18、虚拟内存,程序装载过程
19、使用 TCP 通信的过程
20、红黑树、B 树、B+树
21、平衡转化的过程
22、hash 和红黑树对比
23、适配器模式
24、迭代器的实现
25、内核相关
26、golang 和 c++的区别
27、copy on write
28、fork
29、守护进程
30、软连接和硬连接
31、堆排序过程
第三篇
一面 2019/8/19 来自于牛客网
1、加班挑战?
2、研究方向偏算法、工程方面欠缺,那有什么优势呢?
3、能力在实验室中处于什么水平?
4、工作地点方面有什么考虑?
5、是独生子女吗?家人希望你在哪里发展?
6、单身吗?
二面 2019/8/19 来自于牛客网
1、项目
2、微信里的语音和视频,基于什么协议?从上到下讲述
3、应用层协议关注什么?
4、mysql 索引
5、b+树为什么可以减少磁盘 io 次数?
6、常用的 STL 涉及的数据结构? 7、map 为什么用红黑树?红黑树使用场景?
8、研一都学了什么课?
9、最大不重复子串
第四篇
一面 2019/8/19 来自于牛客网
1、线程和进程的区别,为什么要有内核态?
2、有什么方法可以切换到内核态?
3、用户态切换到内核态的具体过程
4、tcp 三握四挥,为什么三次?两次为什么不行?为什么不需要四次?为什么四次挥手?
5、time_wait 是干嘛的?
6、I/O 复用,select,poll,epoll 的区别和应用场景
7、C++多态的实现原理?
8、带有虚函数的类在内存中怎么布局?
9、虚函数表是什么数据结构?
10、算法题
1)写一个函数,生成 0-1 的随机数
2)字符串匹配
二面 2019/8/19 来自于牛客网
1、算法题
1)写一个二叉树的中序遍历的迭代器
2)将中序遍历改成非迭代
3)大数相减
2、http 中的 get 和 post 有什么区别?
3、post 是怎么样放在 body 中的?
4、http1 和 2 的区别,http 和 https 的区别,神经网络的 bp 算法怎么推导?
5、C++多继承,菱形继承
第五篇
一面 2019/9/14 来自于牛客网
1、如何获知拼多多的?
2、对拼多多的认识?
3、问问简历上的一些事情、项目
4、工作地点的考虑
5、求职方向的考虑
6、是否已经获得过其他厂的 Offer
7、经典问题:目前为止最有挑战的经历
8、薪资待遇
二面 2019/9/16 来自于牛客网
1、自我介绍
2、回顾一下笔试题,问了第一题的思路以及一些代码上的细节。这里有一个很奇特的
点,在线提交的时候显示笔试成绩是 75-100-0-0,而面试官手里的资料显示是 75-85-
100-0
3、由于是非科班,面试官就轻虐一下,首先问进程和线程的区别
4、随后问知道协程吗?
5、构造函数能否是虚函数?
6、手写单例模式
7、算法题:消消乐,给定一个数字序列,将连续的数字全部消除,比如 1,2,3,3, 3,2,3,返回 1,2,2,3 8、消消乐升级,只要有相同连续数字,全部消除,如 1,2,3,3,3,2,3,返回 1,3
第六篇
一面 2019/9/24 来自于牛客网
1、自我介绍
2、算法:二叉树宽度最大的第三个数
3、RPC 底层实现
4、Redis 雪崩解决办法
5、高并发的模式,多线程 netty 的模式
6、业务减库存的问题,如何防止多减
二面 2019/9/24 来自于牛客网
1、自我介绍
2、算法:矩阵里寻找一个点到另一个点的最短路径,中间有障碍物
3、算法:求 1 到 N,每个数有多少个 1
4、算法:查找二叉树插入和删除的实现
5、聊了聊项目
第七篇
一面 201/8/29 来自于网络
1、两栏布局,左边固定,要求先加载内容区域,说出多种方法
2、正则对象 test 方法和 exec 方法的不同,分别返回什么
3、事件绑定的多种方式,事件监听 addEventListener 的第三个参数是什么,取值各有什
么意思
4、事件代理阻止事件冒泡(stopPropagation cancelBubble)阻止事件默认方式
5、js 基本数据类型有哪些,写一个函数判断变量的类型
6、详细说说 box-sizing 属性取值的区别
7、有一段文字,里面有电话号码,电话号码是连续数字,需要把电话号码都替换成*,说
出多种做法
8、Header 头 Set-cookie: http-only 是干什么用的?
二面 2017/8/29 来自于网络
1、自我介绍
2、讲讲你做过的项目
3、项目中提到了 React,问:React 组件的生命周期?父子组件之间如何通信?子组件之
间如何通信?
4、前端性能优化?
5、http 缓存原理?
6、JavaScript 的垃圾回收机制?
7、CSS BFC 原理?
8、box-sizing 属性
9、稳定的排序和不稳定的排序?
10、还有什么想问我的?
第八篇
一面 2019/10/14 来自于网路
1、自我介绍
2、js 继承原理
3、闭包,经典闭包问题 for 循环 i,实现指定输出
4、状态码 499 client has closed connection
5、http 有哪几种请求的方法,options 作用
6、CROS 方法实现跨域
7、项目介绍,微信免登陆怎么实现
8、angular 和 vue 区别
9、手写多路归并排序
10、前端性能优化?具体怎么实现的,用过哪些
11、sessionStorage 和 localStorage 的不同
二面 2019/10/14 来自于网络
1、自我介绍
2、项目介绍,vue 优点
3、盒子模型,怎样在标准盒子模型中实现 IE 盒子模型
4、知道哪些排序算法,手写快排,时间复杂度
5、怎样知道一个元素在当前屏幕 getBoundingClientRect
6、实现空心圆,里面白色,外面红色(伪元素、border、radial-gradient)
7、有三个函数,内部实现都是异步的,怎么让这三个函数变成一个同步的,以节省时间
–promise、all
第九篇
一面 2019/10/20 来自于网路
1、一个 C++源文件从文本到可执行文件经历的过程
2、#include 的顺序以及尖叫括号和双引号的区别
3、进程和线程,为什么要有线程
4、C++11 有哪些新特性
5、为什么可变参数模板至关重要,右值引用,完美转发,lambda
6、malloc 的原理,brk 系统调用干什么的,mmap 呢 7、C++的内存管理方式,STL 的 allocaotr,最新版本默认使用的分配器
8、hash 表的实现,包括 STL 中的哈希桶长度常数
9、hash 表如何 rehash,怎么处理其中保存的资源
10、Redis 的定时机制怎么实现的,有哪些弊端,你将如何改进这个弊端
11、Redis 是单线程的,为什么这么高效。我用了对比的方式说,举例 Apache 和
Nginx,一个多线程,一个 IO 多路复用
12、Redis 的数据类型有哪些,底层怎么实现,跳跃表,哈希表,整数集合等等
13、Redis 的 rehash 怎么做的,为什么要渐进 rehash,渐进 rehash 怎么实现的
14、Redis 和 mem***d 的区别,Redis 为什么可以组集群
15、TCP 的模型,状态转移
16、用过哪些设计模式,单例模式,观察者模式的多线程安全问题
17、用过多线程吗,以前的多线程代码还能怎么优化,线程池的实现
18、epoll 怎么实现的,reactor 模型组成
19、平时怎么提升自己,看书,看别人在学什么,那最近看了什么书?你怎么判断一个人
厉害不厉害
20、给定一个数字数组,返回哈夫曼树的头指针
21、随便挑一个自己收获最多比赛或者项目介绍,收获了什么
22、单核机器上写多线程程序,是否需要考虑加锁,为什么?
23、线程需要保存哪些上下文,SP、PC、EAX 这些寄存器是干嘛用的
24、HTTP 和 HTTPS 的区别,HTTPS 有什么特点,带来的好处和坏处,怎么实现的
25、线程间的同步方式,最好说出具体的系统调用
26、哈希表的桶个数为什么是质数,合数有何不妥?
第十篇
一面 2019/10/20 来自于牛客网
1、自我介绍
2、Cpp
3、智能指针
4、虚函数的实现?
5、虚函数表存的是什么?
5、给了段多继承的代码,问我代码中会调用哪个类的虚函数
6、内存分为哪些区?
7、new 的内存在哪,局部变量在哪?
8、函数调用时发生了什么?
9、栈怎么变化的?
10、虚析构函数的作用?
11、动态绑定和静态绑定
12、宏定义与模板的比较?宏定义会有什么潜在问题?宏有类型检查吗?
13、浏览器输入地址后,发生了什么?
14、算法题
给定一个数组,找出最长子序列的长度,子序列满足:递增-递减-递增波动变化
求职必备刷题官网:https://github.com/bennyrhys/interview
【更多互联网公司笔试面试真题请关注“让我遇见相似的灵魂”公众号】