腾讯网易等面经
之前一直在牛客上看大家的面经, 一直没机会发,现在找完了发一波来回馈牛客。
只有腾讯和网易投的是游戏研发 剩下的都是C++开发,最后拿到网易游戏offer
另外,之前一直没拿到offer 换了个杨超越的头像,真的有好消息..信则灵吧...
腾讯提前批
1.malloc free new delete 四个中的联系和区别。
2.new一个对象和new一个数组 delete一个对象和delete一个数组 区别
3.c++静态函数和静态变量
4.指针和数组的区别
5.野指针 内存泄漏
6.机制上避免野指针
7.智能指针原理
8.引用计数的管理设计到哪些函数
9.RTTI
10.多态
11.编译器多态
重载:函数重载 运算符重载
12.排序算法
13桶排序 如何优化 适用场景 优化算法 快排优化算法
腾讯正式批一面
1.sizeof 类A A中有一个int 是多少字节 如果有函数呢多少字节(是否是虚函数) 虚函数在什么位置
2.数组和链表区别
3.数据结构的区别
4.一个类的定义 在函数内部定义还有一个指针new出来区别:
5.const char* p=“hello world” 这个“hello world”在内存的哪个位置
5.虚拟内存 内存映射 交换数据 ***-内存
6.协程
7.32bit 和64bit 进行+-/*的运算 从程序的角度来讲 主要区别
8.new 具体实现 operater new做了什么事情
9.多线程访问同一块区域的时候 CAS和锁的区别
10.归并排序 思想
11.top k 并且 要计算 前k个出现的数字 并且计算出现的个数。
12.百亿级别的数组 A B 长度相同 实现C[I]=A[I]+B[I] 最快的方法 :(多线程 面试官说还有一个指令集..不是很懂)
13.vector和传统的数组的区别,可能导致的坑
14.堆栈溢出 什么情况可能导致堆栈溢出
15.智能指针
二面
对简历上写的每一个条都会问。。 然后手撕代码:不用库函数设计一个循环队列
网易互娱
1.协程
2.内存分配方式 位置 内存泄漏的原因 在A函数new在B函数中delete造成内存泄漏,为什么 造成内存泄漏该如何查找 如何防止内存泄漏 智能指针的区别 当全部都使用智能指针 还会不会造成内存泄漏。
3. 堆栈溢出
4.虚函数 纯虚函数
5.STL vector 底层实现 能不能更改 使其不是两倍?
6.map底层实现 查找和增加元素的时间复杂度
7.迭代器 为什么不用指针
8.map 与 unordered_map 的区别 hash表的原理 hash冲突方法
9.static作用
OS:
10.进程和线程的区别: 线程之间的同步有哪些方法
11.分页
12.进程调度策略 LRU如何实现
13.os的buffer
14.静态链接库和动态链接库
15.I/O多路复用 epoll和poll select为什么只能观察1024个链接 epoll在mac上是否支持
计算机网络:
16.tcp的流量控制: 滑动窗口的原理
17.既然有了拥塞控制 为什么还会有拥塞比如游戏卡顿
18.tcp的粘包 如何解决 nagle算法 :https://www.cnblogs.com/kex1n/p/6502002.html
19.HTTP基于什么 底层使用的什么协议 长连接还是短链接
算法 数据结构 20.快排原理
21.DFS
22.并查集
23.线段树
24.一个数组 其中一个数字出现的次数大于1/2 找出这个数字
25.N个数字 返回出现频率前k高的元素 :分治法 要分多少份才合理?
26.一个平面 凸多边形 一个点在不在多边形内。:
快手
1.析构为什么是虚函数
2.手撕单例模式
3.share_ptr和unique_ptr区别
4.翻转数组
M*N 每个是0或1 每次翻转一行或者一列 翻转是1变成0,0变成1 任意次翻转使其每行每列的1的个数都是偶数个。比如:
1 0 1
1 1 0
1 0 1
那种情况下可能完成?可能完成的最小次数?
符合 不符合
row A1 B1
col A2 B2
可能完成的情况 B1为偶数 B2为偶数 或者 B1为奇数 同时 B2为奇数
翻转的最小次数:
1. B1为偶数 B2为偶数
min(B1+B2,A1+A2)
2. B1为奇数 同时 B2为奇数
min(B1+A2,B2+A1)
这个最小次数是我猜的 当时没回答上来 阿里
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+树的原因
头条
1.IO多路复用 select poll epoll 区别
2.epoll里面存储的是什么东西。
3.虽然select要轮询1024个,但是1024个也不算很多,O(1024) 为什么这个时候epoll仍然是比select要好的。
4.阻塞和非阻塞的区别 同步和异步的区别
5.基类的析构为什么是虚析构
6.计算机网络四次挥手的状态机
7.出现了太多的time_wait是什么原因。
8.手撕代码:一个迷宫 一个入口,一个出口,M*N列 求最短路径。
9.地图上有多个商家,如何统计一个人n公里内的所有商家。