美团c++一二面
美团基础研发平台,9.2号面试完二面,快两周了,一直没有下一步通知是不是凉了?有没有类似面试经历的同学说一说。
一面问的很基础就不说了。
二面是一个leader,更关注考察思考能力和用已有知识的迁移能力。C++和c对应linux操作系统的不同文件系统来说如何实现调用不同的函数接口,就是不同的文件系统调用不同的函数,回答是类似于c++的虚函数原理用函数指针实现的。页式内存的原理。二维数组的按行和按列获取元素顺序有什么异同,哪个效果好,为什么,这个回答涉及到三级cache缓存到寄存器的原理,如果是按照列获取元素,缓存中的数据会频繁换入换出,导致性能差,所以需要利用程序的局部性原理,按行获取数据。买电影票如何实现一个人买了,其他人就买不了了,并且如何一个人订了票30分钟内不付款就可以其他人继续购买,回答了redis的分布式锁,setnx和setex,问如何在mysql数据库里实现,回答用行锁锁住,然后新增一个字段保存订票时间,然后每分钟轮询查看哪行数据过期就进行释放。又问如何优化不用轮询?回答对订票时间加索引,然后对一定范围内的数据进行检查,可防止轮询。如果在redis里面怎么优化呢?没想出来,面试官说用zset就可以了,zset是排序的,可以对时间排序。下一个场景题:美团支付经常会跟支付宝或者微信支付串接着使用,美团和微信之间需要有什么接口供对方调用,回答了美团需要有一个问询的接口,主动查询微信支付的结果,微信需要有一个主动通知的接口,当用户支付完成之后可以主动通知对方。又问如果微信的这个接口可以告知美团所有的支付信息,可不可以去掉美团的问询接口?然后又聊了聊对网络七层模型的理解,为什么要七层,这种抽象的思想在计算机系统里哪里还有?问了问对后端的了解,是否知道哪些中间件?还问了最近几年令你印象最深刻的事情,最后面试官介绍了一下他做的业务是2b方向的,企业服务的一整套。最后写了一道二叉树层次遍历的题。一共80分钟。