C++面经-2020年暑期实习
- 钉钉C++研发工程师:主要是windows开发
- 腾讯wxg和ieg:C++后台发开,ieg:oc
- 字节:客户端开发
- 美团:服务端开发,4.24 oc
钉钉C++
一面
- 项目介绍
- 自己觉得最有价值的项目,说说其中遇到的问题怎么解决的?越多越好
- C++
- 虚函数的原理和作用
- 左值和右值区别,以及右值是否可以转换成左值
- 浅拷贝和深拷贝的区别,以及为什么需要深拷贝
- 内存管理方面遇到的问题
- 出现内存错误,可以通过反编译查出来吗?
- 计算机网络
- TCP三次握手和四次挥手的过程
- TCP为什么需要三次握手,而不是两次
- 操作系统
- 怎么控制多个线程同时写的问题
- 多个线程,中间有些线程读,有些线程写,如何控制写线程执行时,其他线程无法执行,没有写进程时,所有读线程可以执行
- 数据结构
- 二叉树的遍历方式
- 介绍一下在实际中用到遍历方法的例子,编程题也可以
- 手写代码
- 字符串转整数,实现atoi函数
二面
- C++
- 怎么学习C++的?在你看过的书中最有印象是哪一本?讲讲这本书中最有印象的点
- 堆爆破
- explicit关键词
- 什么是内存泄露,野指针
- 怎么让一个程序在main函数结束后还输出一段内容
- 虚函数表
- 菱形继承
- 虚继承:解决菱形继承中的问题
- 怎么判断内存泄露
- 操作系统
- 进程和线程区别
- 一个进程,有多少个堆和栈
- 多个线程,主线程结束了,其他子线程会怎么办
- 进程切换技术
- 虚拟内存
- 原子锁
- 一个线程怎么杀死另一个线程
- 算法
- 排序算法介绍一下包括时间复杂度,以及对于有序数组,那个时间最短
- 手写代码
- 判断一个文件中是否包含敏感词汇
三面
- 虚函数,虚表
- STL容器,底层实现,红黑树和哈希表的对比
- QT的信号槽机制原理,对应什么设计模式:观察者模式
- 问题都比较深
- 给我推荐了三本书《C++对象模型》,《windows核心编程》和《windows高级编程》,推荐我实现一个notepad程序
- 做了notepad给面试官,直接过了,走下面的流程
四面
全程聊天,从本科聊到未来,主要看的我们的规划和计划性,以及寻找你突出的特点,跟别人比你吸引人的地方。
五面
全程聊天,聊了十来分钟吧,主要就是要你讲自己的优点,比举例子。还有觉得自己适合做什么,不适合做什么。面试官最后说了他这里基本没问题。
HR面
腾讯wxg后端开发
一面
- TCP三次握手,如果第三次客户端没有响应,服务端会怎么做?
- HTTP和HTTPS的区别
- IO多路复用,epoll的重排是怎么做的?
- 协程,进程和线程的区别
- 虚拟内存
- 多个进程的地址可以一样吗?
- 虚拟地址到物理地址怎么映射的?
- 虚函数,虚表
- 如果类C继承自A,B,那么类C中有几个虚表?
- 怎么找到虚函数的地址?
- 子类可以调用父类的虚函数吗?
- .o文件到.dll文件的过程,讲讲是如何链接的?
- 项目
- 六道算法题
二面
全程问项目,遇到的问题,以及一些技术的深入,比如FASTCGI的原理,Docker和K8s的区别等等。然后一直问我还有没有补充的。
最后问我有啥问题没
三面
全程问项目
腾讯游戏后台安全开发
再次被捞
第一面
- 看过的书,介绍一下
- 浏览器输入一个网址,会发生一些什么事
- 最有成就感的一件事
- 你的优点和缺点
- Linux命令
第二面
- 虚函数内部实现机制,调用的过程
- 项目
- FASTDFS的工作原理,备份和容灾方面的处理
- TCP结束时的四个状态
- 20多分钟
HR面
- 觉得最有价值的实习
- 在实现过程中学到的东西
- 在工作学习生活中遇到的最大的困难
- 工作地点,父母对工作地点又要求吗
- 你当班干部是因为兴趣还是想提升自己在这一方面的能力
- 实习中除了技术上,还有啥体会吗
- 投过哪些公司?会优先选择哪个
- 之前投的wxg,现在换成ieg的,岗位有什么想法吗
- 15分钟左右
两天后就oc了。
字节跳动抖音android客户端发开-上海
- 自我介绍
- 项目介绍
- Android打包的过程,为什么要签名,签名的原理是什么?
- 开始投的C++客户端开发,后来被调到android开发,所以主要问了C++的内容
- C与C++区别
- sizeof一个空类
- C++三大特性
- struct和class的区别
- 多态介绍
- map和set底层实现
- vector和list的区别
- 虚函数,虚表
- delete的背后实现
- 智能指针
- 虚函数可以是内联函数吗?
- 操作系统
- 进程间通信方式
- 两个进程之间怎么共享内存的?
- 虚拟内存,分页机制,虚拟地址怎么映射到物理地址?
- 死锁,AB两个进程,cd两个资源,怎么才会形成死锁
- 计算机网络
- 浏览器输入网址背后的内容
- HTTP是否有状态
- cookie的原理,为什么服务端需要session,而不是直接存储用户名和密码?
- HTTPDNS
- UDP和TCP的区别
- DNS使用UDP还是TCP
- 代码
- 无重复字符的最长子串
一直没有消息了。
美团
第一面
- 多路IO服用
- 进程和线程的区别
- 进程间通信方式
- redis同步方式
- 分布式怎么来处理请求
- mysql和redis的区别
- mysql的两种存储引擎的区别
- mysql表有几种连接方式,内连接,左连接和右连接
- 怎么处理高并发,除了多路IO服用,貌似还有线程池,分布式
- TCP的三次握手
- TCP拥塞控制
- TCP的窗口机制主要解决什么问题
- TCP拥塞控制主要解决什么问题
- HTTP的长连接和短连接的区别
- scoket编程,服务端怎么处理请求的
- 如果判断一个包使重传的包
- 手撕快排
- 有什么问题:
- 主要做什么业务
- 对我的评价
全程一个小时不到。
第二面
- 自我介绍
- redis
- http的一些方法
- 网络编程中,服务端怎么处理请求
- tcp和udp的区别
- 哪些应用层协议使用udp和tcp
- c++多线程怎么实现同步
- liunx的命令这一块,我强调之前用过,现在不太熟悉,对操作系统知识比较了解
- 如果修改文件权限
- 如果读一个几G的文件
- 查看端口
- redis有哪些数据结构
- 中间件,因为不了解直接说不会,说了一个RCP啥的,我也忘记了
- 项目介绍:这个时间占大头
- 你是怎么学习
- 对未来的规划
- 反问:对我的评价
- 手撕代码
- 有序链表合并
- 如果链表无序怎么处理
全程四十分钟左右。
面完还没消息。