腾讯网易字节面经(C++,腾讯和字节是iOS岗)

407 阅读7分钟

211通信本硕,自己搞了差不多一年的时间,学C++,通过面经学操作系统和计网,通过刷题学数据结构和算法

腾讯因为是提前批的,所以很多问题不记得了,见谅!

腾讯PCG一面(1h)

1.进程和线程的区别 2.死锁的原因 3.介绍虚拟内存 4.常见排序算法,排序算法稳定的意思,快排的复杂度什么时候退化,基本有序用什么 5.TCP可靠性 6.http+https 算法:Z字遍历二叉树,归并排序 后面说因为我不会java和安卓,会帮忙转推到iOS的组(面试的这个组是java客户端)

腾讯PCG iOS一面(1h)

1.聊项目,聊了很久,一开始没有意会面试官想知道什么,最后说是想知道我这么做比起从客户端自己去实现的区别(这个项目是小米实习时候的项目,做的浏览器内核,页面翻译功能, 基本每一个客户端应用都会有一个类似于浏览器内核的东西,对页面进行渲染,呈现,也可以叫渲染引擎,学前端的肯定知道这个东西,他主要是解释html,css,js的。 我做的这个页面翻译功能可以不经过内核直接由客户端工程师用安卓客户端实现整套逻辑,所以这么问我了) 2.实现string类,实现构造,析构,里面加一个kmp 3.介绍智能指针,智能指针保存引用计数的变量存在哪里,引用计数是否线程安全 4.算法:两个只有0和1的数字序列,只能0 1互换,每次当前位互换都会使后面的也换掉(比如,011000,换第二位,成了000111),计算从一个变到另一个需要几步操作。 5.https,验证公钥有效的方法,为什么非对称对称并用

腾讯PCG iOS二面 (40min)

1.算法:合并排序链表 2.static关键字的作用 3.const关键字的作用 4.成员初始化列表的作用 5.指针和引用的区别 6.又是很久的项目,怎么去学习浏览器内核(chromium内核的代码量有几千万行,而且写的很难懂,用了大量的设计模式,作为一个菜鸡真的很痛苦) ,怎么去调试项目中遇到的问题(这里主要是一个ipc接口没用对),你觉得人家google的是怎么去调的,你为什么和人家做法不一样?

腾讯PCG iOS三面(2h)

1.还是聊了很久项目(已经麻了,做过的东西一定要能说出口) 2.浏览器呈现一个页面经过了哪几步(DOM树,layoutobject树,browser进程绘制) 3.C++多态的实现 4.DNS解析,递归与迭代的区别 5.chromium用的渲染引擎是什么,这个渲染引擎对应的js解释引擎是什么(blink和v8,前几个问题表现有些差,这会在问一些1+1的问题了,哭) 6.平时怎么学习技术的,看过哪些书,有过哪些输出(我把实习时写的项目wiki给截了个图) 然后反问,打开牛客让我写了个代码,他不知道去哪了,我自己在这写,写了一个多钟头,你以为这是道很难的题吗?no,是我那会确实很菜,哈哈 题目是,给一个字符串插入最少的字符,让这个字符串变成回文

腾讯 hr面 (40min)

1.有哪些缺点 2.投了哪些,为什么不投阿里头条(实习忙的我面你们都要面不过来了) 3.如何选择offer 4.家是哪的,为什么愿意去深圳 每一个问题都不是简单的答完就完事了,他会跟着问很多 然后反问时我问问题给我说了20分钟

腾讯是第一个offer,那会菜得很,大佬们对我的评价估计也一般,所以offer档位很低,但可气的是我明知道面试评价不怎么地,还躺了,难受了好久,参加了一波补招

网易杭研补招,也挺久了,回家后事情多也给忘了很多,见谅!

网易杭研C++一面 (1h):

上来给我介绍了一下团队是做数据库内核的,唠了一会磕 1.操作系统八股文(进程线程,虚拟内存,页面置换) 2.计网八股文(TCP,TIME_WAIT,为什么四次) 3.C++八股文 4.操作系统有哪些模块(想到啥说啥,最后他说他们比较注重io,我以为要问我epoll八股文,结果问了内存访问磁盘数据的过程,gg) 5.算法:判断链表有环,找到环的入口

网易杭研C++二面 (1h)

项目聊了十几分钟,实习快结束时遇到一个难缠的bug,后面每次讲项目时,都把面试官注意力转换到这个bug上了 1.虚函数实现原理 2.虚表存在哪里 3.C++内存分区 4.内核态用户态的区别 算法:寻找第K大的数

网易杭研C++hr面 (20min)

1.为什么想来网易 2.为什么想来杭州 3.做过什么疯狂的事(和室友们一起不复习,然后一宿舍人一起挂科,哈哈,玩的有点过) 4.有哪些offer,价格 5.网易不给offer怎么办 过了两天说是前面评价不错,邀请总监面 (40min) 1.还是项目,三十分钟的项目,这是我讲项目最详细的一次 2.希望往哪个方向发展,希望以后做哪方面的技术 3.反问(其他的每轮面经也都有反问,只是我个人认为总监面的反问环节可能更重要些)

最后的offer是sp

字节抖音iOS补招,估计确实是比较缺人

抖音 iOS一面 (1h20min)

上来闲聊了一会 1.算法:字符串大数相加 写完问我有没有需要优化的地方(内存可以优化一下) 2.string类赋值运算符是深拷贝还是浅拷贝 3.算法:根据前序和中序输出二叉树的后续遍历 4.C++ deque底层,deque有没有重载[] 5.为什么要内存对齐,内存对齐的规则 6.算法:上台阶,加了个条件,这次上两级,下次就只能上一级 7.反问+闲聊

抖音 iOS二面 (1h)

十分钟不到的项目 1.进程和线程的区别和联系 2.线程共享哪些内存空间 3.进程内存模型 4.进程间通信方式 5. 虚拟内存,为什么要有虚拟内存,虚拟内存如何映射到物理内存 后面还挖了一些操作系统的问题,记不太清了 5.TCP为什么四次挥手 6.https客户端验证公钥的方法 7.描述并写一下LRU 8.说一下怎么学chromium的,怎么上手项目的 9.C++内存分配,写了一段代码,看里面申请了哪部分内存,申请了多少,代码有什么问题 10.代码里面的内存泄漏怎么解决,智能指针的引用计数怎么实现,那些成员函数会影响到引用计数 11.代码里面有无线程安全问题,线程安全问题的是否会导致程序崩溃,为什么 12.C++虚函数的实现原理,纯虚函数 13.C++引用和指针的区别,引用能否为空

抖音 iOS三面 (1h)

1.lambda表达式,它应用表达式外变量的方式和区别 2.decltype的作用,他和auto有什么不同 3.C++的所有智能指针介绍一下 4.C++thread里面的锁,条件变量,讲一下怎么用他们实现生产者消费者模型 5.C++20有什么新东西(我就知道支持了协程,然后他说我就想问你协程,然后我说,其实我具体不了解,丢人了) 6.右值引用是什么,移动构造函数有什么好处 7.操作系统微内核宏内核(懵) 8.进程间通信的共享内存,如何保证安全性(信号量),结合epoll讲讲共享内存 9.TCP协议切片(懵) 10.TCP协议的流量控制机制,滑窗为0时,怎么办 11.算法,合并K个排序链表 12.合并K个排序数组,讲思路,我说归并,他说,传输参数是数组,不是vector,你如何判断数组的大小