每次大厂面试都是一次道心破碎的折磨。自我介绍算法:第 k个max。快排的思路,对pivot二分找order,然后就可以排除一半。平均复杂度是O(n)C++多态。静态多态和动态多态。实现原理。静态实现有模板和重载,为什么C里没有函数重载。动态实现虚表,虚表的实现和查找过程。主要是在子类对象中包含有一个虚表的指针,每个类都有自己的虚表,找到对应的类的虚表,再在虚表上查找真正的函数地址。类型转换。const/static/dynamic/interpreter的区别。其中,dynamic是什么时候判断是否能转换(运行时RTI?),会返回什么(空指针)program once有什么用const 修饰类函数操作系统内核和用户态的使用。切换需要什么代价。线程同步方式。互斥锁、读写锁、自旋锁区别。适用什么场景。比如自旋锁主要适用短小的互斥代码逻辑。判断依据是执行互斥代码逻辑开销小于线程沉睡唤醒的切换开销。开放题:重I/O服务器如何优化性能。I/O多路复用模型。select,poll,epoll。有什么区别。提示:比如epoll模式中,考虑CPU占用率高的话可能在哪些部分。比如系统调用,用户态到内核态的切换会有损耗。如何减小这个开销。提了一个批处理思路。还给了一个DMA技术。epoll水平触发和边缘触发的实现。边缘触发的话, 如果有100 byte,然后读了50byte,之后再来了2byte数据,那剩下52byte数据会触发事件回调吗协程的了解。对比线程如何降低了切换开销。线程和进程的共享内存有什么区别。提示了一个生命周期。TCP首部的字段包含哪些字段。拥塞控制的实现:慢启动、拥塞避免、快重复、快恢复。阈值的设定依据。TCP四次挥手,最后一次ACK发出以后可以直接退出了吗。要等待一段时间,为什么。等待时间(2MSL)是怎么设定的。项目。OSG是啥,用了干嘛。今年的实习项目做什么。做的算法。反问。业务:音视频大部门下的流量中心,比如CDN处理等。技术栈大概有:网络、系统比如协议栈的优化、流媒体多媒体技术比如视频封装、业务理解和平台搭建等,涉及java和go。研发大概有7/80人,base深/杭/北京。复盘晚点发。
点赞 5
评论 6
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务