4.21拼多多实习服务端杭州浙大站凉爽面试经验
PDD这边主要用的Java,主要使用的框架和组件有Spring、MyBatis、RabbitMQ、Dubbo、Redis 等等等。
我是个C++党,两个面试官看起来都比较年轻且nice,知道我的情况后就没怎么问Java相关的东西。
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、手撕代码:1)给定一个数字数组,返回哈夫曼树的头指针。2)最长公共连续子序列。21、随便挑一个自己收获最多比赛或者项目介绍,收获了什么================= 其实问了很多问题,有的忘记了,在此补充上 ===================22、单核机器上写多线程程序,是否需要考虑加锁,为什么?23、线程需要保存哪些上下文,SP、PC、EAX这些寄存器是干嘛用的24、HTTP和HTTPS的区别,HTTPS有什么特点,带来的好处和坏处,怎么实现的25、线程间的同步方式,最好说出具体的系统调用26、哈希表的桶个数为什么是质数,合数有何不妥?
其余时间聊项目,聊拼多多使用的技术。比较重要的一点是大家的项目经历,项目经历并不仅仅是摆在那里证明自己做过项目,要首先对项目有全局上的了解,再对自己负责的部分了如指掌,最好用到了什么组件和技术都去了解他们的原理,那么在面试的时候就有很多很多聊的了。
#春招##实习##面经##C++工程师##Java#