字节跳动 C++/QT PC客户端面试 凉经 (社招)

      在这里祝大家新年快乐,过完年就是春招了,祝大家春招顺利啊。

      我第一次面试字节的时候,是去年7月份,当时是我面试的第一家,技术还太稚嫩了,后来二面挂了。

      一面的面试官,是团队里的大牛,面的问题,会更基础一些。重点考察基础的C++技术

 

      1.父子继承时候,它构造函数和析构函数的顺序?析构时候,如何让父子类里所有的析构都调用一遍?

      2.一个函数,如何让它在main函数之前执行?

      3.可以在C++的成员函数里调用delete this吗?

      4.class A;

class B

{

A a;

}

能不能允许?

 

      5.如何保证只打开一个exe.当打开了exe1的时候,如果再打开exe1第二次,会将exe1之前打开的旧窗口调出,并最大化显示.

      6.一个浏览器的网页,包含前进和后退功能,使用哪种数据结构来存放历史网页,比较合适。

      7.C++的类型转换有哪些。_cast

      8.C++有哪些智能指针

      9.如何使用C++发送http请求,并下载文件。

 

编程:

      1.手写一个装饰器模式

      2.找出给定数组中,两个数加起来等于目标值的数,找出那两个数的下标。(NC61两数之和)

 

 

      二面的面试官,是团队里的Leader。考察的问题,就更加深入了,当时我还是菜鸟,大部分问题,都没答出来。

 

      1.GPU渲染和CPU渲染,之间的区别是什么

      2.集成显卡的用户,使用集显进行渲染的时候,在编码阶段,是走硬编还是软编

      3.硬编还是软编,和“GPU渲染还是CPU渲染”,是一回事吗

      4. QCoreApplication::setAttribute(Qt::AA_UseOpenGLES)   是什么用处

      5. QWidget和QML的区别,在渲染层面

      6.有没有尝试过win11

      7. windows系统下,是怎么实现窗口刷新(窗口刷新机制);是立即刷新,还是异步刷新;每次我需要一个窗口刷新,他都能立马刷新吗

      8.父子窗口间的刷新管理?兄弟窗口间的刷新管理?如何让子窗口刷新,父窗口不刷新?

      9.兄弟窗口,想刷新他们的重叠部分,请问流程是什么样的,刷新的顺序是什么样的?

      10.Windows下UAC安全机制.

      10.说说windows系统的内存管理,怎么实现共享内存?操作系统层面是如何完成这个过程的?

      11.如何分析dump文件

      12.如何排查出代码里已经存在的内存泄漏问题,线上的内存泄漏

      13. QString和string的区别, 的实现方式

      14.QT下如何使用多线程

      15.show() exec()区别

      16.qobject parent的用处

      17.class前项申明和include的区别

      18.多继承的问题

      19.int,long long占多少字节

 

编程:

      1.找出数组里的下一个更大的数字。(可以循环查找)

      输入 【2,5,3,7,2,6,9,3】  

      输出 【5,7,7,9,6,9,-1,5】

 

      隔日告诉我,没过,7月面试到此结束。

      

      后来过了几个月,我又来面试了。还是同一个岗位,再来试一次。

      这次一面,就换了一个面试官。考察的也是基础问题,不过更加深入了一些。

      

      1. Qt Remote Object的序列化与反序列化

      2.软件如果出现问题,如何去定位的,如何处理的?静态扫描和动态检测,有哪些方法.

      3. QWidget和QML的技术本质和使用上,有什么区别?

      4. QT的信号与槽,有哪几种连接方式,对应的应用场景是什么?(第五个参数)

      5.信号与槽,是如何去提高它的匹配性能的,一个信号,如何高效地去找它的槽函数

      6. QT的多线程,你用了哪些技术.哪些是只有Qthread能做的,QtConcurrent办不到的.

      7.线程池,申请多少个线程池,比较合适?会不会使用GPU?

      8.用QT实现一个三角形的按钮,会如何实现?

      9.什么情况下,delete需要加一个中括号[]

      10. new malloc区别?

      11. int占多少个字节,long long,long,这几个一定是占这么多空间吗?

      12.纯虚函数和普通的虚函数有什么区别

      13.虚继承的作用

      14.代码题:判断一棵树是否是平衡二叉树.

      

      

      二面的面试官,没换。

      

      1.装饰器模式/门面模式/中介者模式,他们的代码实现和优缺点

      2.使用QT渲染的时候,有没有遇到显卡适配的问题?

      3.共享内存的流程(底层原理)

      4. QT的信号与槽机制的优缺点

      5.制作一个按钮,会躲避鼠标,鼠标一旦移动上去,按钮就会跑

      6.除了用鼠标移动去控制指针以外,我们还有很多方式去控制,他都会触发mouseMove事件吗?

      7.鼠标指针,可以移动,除了鼠标键盘可以控制,某些触摸板/触控屏,他们触发的都是mouseEvent吗?

      8. QT的指针指针,QSharePoint和shared_ptr有什么区别,weak_ptr呢?

      9. QShareDataPoint作用

      10. shared_ptr内部的引用计数,怎么实现的?

      11.自己有没有实现过读写锁?

      12.乐观锁和悲观锁的区别,自旋锁,是一种乐观锁吗?

      13.多线程加锁,会劣化性能,请问有什么优化的手段?

      14.死锁怎么解决?

      15. dynamic_cast怎么保证安全的?

      16.代码题: 平移之后的升序序列。nums = [4,5,6,7,0,1,2]  ,target = 0  ,输出4, 输出查找到的target的下标,若找不到,返回-1

      

      三面,是个更年轻的面试官。原本是部长来面试,部长临时有事,就换了另一位leader。

      

      1. qgraphscene/ qgraphitem的填充模式,任意一个多边形,它的填充模式有哪些?

      2. qgraphscene的内存开销,刷新的性能

      3.设计模式里的 备忘录模式,如何实现撤销和恢复.

      4.备忘录的结构体,怎么保证扩展性,如果需要新增内容,怎么办

      5.如果我撤销了20次,如果我希望,从第0次,直接跳到第20步,要怎么做(不是一直迭代20次,而是一步到位).

      6.云计算建立的连接,是长连接吗,请问在哪一层建立的连接

      7.服务器的轮询策略,怎么做的

      8. protobuf的问题

      9.对性能和质量这一块,如何考量的.

      10. CPU并行化的方法,说一个你熟悉的

      11.静态扫描和动态检测.C++内存的运行时的动态检测,要怎么做

      12.如果有一块内存,如何知道内存是被人正在使用的,还是忘记delete导致内存泄漏的?

      13.堆内存分配的时候,需要找寻足够大的内存,如果没有足够大的内存怎么办

      14.静态扫描检测,的具体方法

      15.工程效率方面 ,build system用的哪一块,qmake还是cmake.你们三方库管理,仓库管理,开发的模式,是怎么做的.

      16.算法工程师打包好动态库,是直接拖入你们的仓库里吗,你们是如何管理的

      17.有没有自动化的过程,工程效率相关的

      18.有CI/CD的部署吗,持续集成Continuous Integration(CI)和持续交付Continuous Delivery(CD)

      19. sever的上线部署的流程是怎么样的

      20.代码题:给一个二叉树,节点都为正数.请找到父节点到子节点,总路径和为SUM的路径,都有哪些.

      

 

      总结来说,感觉字节的面试,一面是看重对于C++/QT的基础技术水平,二面更看重对底层功能的实现和对源码的理解,三面更偏向于项目的整体流程开发经验和带队的领导能力。

      相比较腾讯的神仙面试,感觉还是字节的实在,实实在在地考察考生的基础本领。不像腾讯,神仙考题……

      

      春节假期这会儿,复习的小伙伴应该不少。祝大家在即将到来的春招,再接再厉,旗开得胜啦。


#字节跳动社招##面经##社招##字节跳动##C/C++#
全部评论
大佬拿了offer了吗,大佬tql
1 回复 分享
发布于 2022-02-11 19:40
大佬你好,我很好奇字节跳动用Qt是做什么客户端的😁
3 回复 分享
发布于 2022-03-05 20:26
大佬,如何知道内存是被人正在使用的,还是忘记delete导致内存泄漏的? 这个你怎么回答的?
1 回复 分享
发布于 2022-03-02 13:29
大佬怎么检测这一块内存有没有泄露啊
点赞 回复 分享
发布于 2022-02-18 16:51
大佬是工作一年跳槽的吗?
点赞 回复 分享
发布于 2022-03-02 16:00
大佬QT是怎么复习的啊,有点想问问QT你是怎么看的
点赞 回复 分享
发布于 2022-04-04 23:44
大佬请问你是做全栈吗?怎么还问服务器的?
点赞 回复 分享
发布于 2022-04-20 16:02
大佬 我也准备从事QT开发,大佬能给推荐一下学习路线吗
点赞 回复 分享
发布于 2022-11-15 14:37 河南
大佬,我目前在广州的研究院做QT开发,有什么好的推荐学习资料吗,有些想之后跳字节
点赞 回复 分享
发布于 02-17 03:50 广东

相关推荐

33 240 评论
分享
牛客网
牛客企业服务