腾讯金融科技-后台开发一面
打x的问题没答上来
[] 自我介绍
[] 讲一下C++里面的智能指针
[] 你提到了RAII的思想,能不能具体讲讲
[x] 按照RAII的思想,如果打开一个文件描述符失败了,一般会怎么处理?
[] 讲讲C++里面new和malloc的区别
[] new具体是怎么分配内存的?
[] 你提到了brk和mmap这两种分配方式,能详细讲讲吗?
[] 什么时候选择brk,什么时候选择mmap?内存阈值是多少?
[] 你提到了使用brk分配内存的时候,free的时候并不会立即归还给系统,为什么要做这样的事?
[] 如果用malloc频繁的申请小块的内存,会出现什么问题?
[x] 那你知道malloc会怎么管理这些内存碎片吗?具体是怎么做的?(答了会整理碎片,追问具体怎么做的没答上来)
[] 你提到了堆内存和共享内存,能讲讲还有哪些内存空间吗?
[] 栈区上面的内存是怎么开辟的?
[] 那你知道C++对象的最小的占用空间是多少吗?
[] 追问:为什么是1个字节?为什么不是0字节?为什么不能大于1个字节?
[] 如果一个空对象里面只有一个虚函数,那这个对象的大小是多少?(4字节或8字节)
[] 追问:为什么加了一个虚函数后大小就不是一个字节了?(多了个虚表指针)
[] 能不能讲讲虚表是怎么做的?(虚函数是怎么实现的?)
[] 比如有ABC三个类,A类里面有一个虚函数实现,B类和C类分别继承自A类,B类有自己的虚函数,C类没有。能不能分别讲讲B的对象和C的对象的内存分布情况?
[x] 操作系统如何做线程调度的?
[] 现在有一个多线程的程序,他们同时去修改一个int类型的全局变量,那这个时候会有线程安全问题吗?
[] 追问:为什么会有线程安全问题?比如多个线程同时对i++,会有什么问题?(只加了一次)
[] 追问:那应该怎么避免这种情况的发生呢?(单例模式)
[] 追问:你提到了全局变量使用单例模式来替代,那具体应该怎么做呢?(静态局部对象)
[] 追问:还有其他方法吗?(原子操作、加锁)
[] 追问:你知道C++里面提供了哪些原子操作吗?
[x] 追问:如果现在修改的不是int变量,而修改的是全局map,还能用原子操作解决并发问题吗?
[] 回到多个线程进行i++这个问题,a线程将i加了1,线程b也将i加了1,但是线程b并没有感知到线程a将i加了1,是什么原因导致了这个问题呢?(可能是缓存没同步)
[] 追问:你这里的缓存是什么缓存?(CPU缓存)
[] 追问:能讲讲CPU的缓存吗?它和内存有什么区别?
[] 追问:那你能讲讲如何做才能避免缓存不同步的问题吗?(MESI协议)
[] 追问:能讲讲这个协议吗?
[] DNS解析的过程是怎样的?
[x] 追问:DNS向其他几级服务器查询的时候,用的什么协议?
[] TCP的数据包有大小限制吗?(有,大了要分片)
[x] 追问:你知道这个限制是多大吗?(回答的1500字节,实际应该是1460字节)
[] 追问:比如我一个TCP发送方,在发送的时候一次性不能超过1500字节吗?(一个TCP包不能超过1500字节)
[x] 追问:实际上调用send的时候,这个地方会有限制吗?(不了解网络编程)
[x] 追问:接收方调用receive的时候,一次接受1500字节吗?(不了解网络编程)
[] TCP的servier端调用close关闭连接,这时候client端继续发送数据,会出现什么情况(我回答了正常的四次挥手的过程,但是面试官的不太满意,不了解close是怎么做的)
[] MySQL的事务怎么实现的回滚?(undolog)
[] 追问:讲讲undolog是个啥?
[x] 追问:它记录的是动作还是记录的数据?
[] 追问:每次操作都会向undolog中写内容,那如何解决undolog过大的问题?(我回答的效仿redis的AOF重写)
算法题如图:
#秋招# #面经# #腾讯# #后台开发# #软件开发笔面经#
[] 自我介绍
[] 讲一下C++里面的智能指针
[] 你提到了RAII的思想,能不能具体讲讲
[x] 按照RAII的思想,如果打开一个文件描述符失败了,一般会怎么处理?
[] 讲讲C++里面new和malloc的区别
[] new具体是怎么分配内存的?
[] 你提到了brk和mmap这两种分配方式,能详细讲讲吗?
[] 什么时候选择brk,什么时候选择mmap?内存阈值是多少?
[] 你提到了使用brk分配内存的时候,free的时候并不会立即归还给系统,为什么要做这样的事?
[] 如果用malloc频繁的申请小块的内存,会出现什么问题?
[x] 那你知道malloc会怎么管理这些内存碎片吗?具体是怎么做的?(答了会整理碎片,追问具体怎么做的没答上来)
[] 你提到了堆内存和共享内存,能讲讲还有哪些内存空间吗?
[] 栈区上面的内存是怎么开辟的?
[] 那你知道C++对象的最小的占用空间是多少吗?
[] 追问:为什么是1个字节?为什么不是0字节?为什么不能大于1个字节?
[] 如果一个空对象里面只有一个虚函数,那这个对象的大小是多少?(4字节或8字节)
[] 追问:为什么加了一个虚函数后大小就不是一个字节了?(多了个虚表指针)
[] 能不能讲讲虚表是怎么做的?(虚函数是怎么实现的?)
[] 比如有ABC三个类,A类里面有一个虚函数实现,B类和C类分别继承自A类,B类有自己的虚函数,C类没有。能不能分别讲讲B的对象和C的对象的内存分布情况?
[x] 操作系统如何做线程调度的?
[] 现在有一个多线程的程序,他们同时去修改一个int类型的全局变量,那这个时候会有线程安全问题吗?
[] 追问:为什么会有线程安全问题?比如多个线程同时对i++,会有什么问题?(只加了一次)
[] 追问:那应该怎么避免这种情况的发生呢?(单例模式)
[] 追问:你提到了全局变量使用单例模式来替代,那具体应该怎么做呢?(静态局部对象)
[] 追问:还有其他方法吗?(原子操作、加锁)
[] 追问:你知道C++里面提供了哪些原子操作吗?
[x] 追问:如果现在修改的不是int变量,而修改的是全局map,还能用原子操作解决并发问题吗?
[] 回到多个线程进行i++这个问题,a线程将i加了1,线程b也将i加了1,但是线程b并没有感知到线程a将i加了1,是什么原因导致了这个问题呢?(可能是缓存没同步)
[] 追问:你这里的缓存是什么缓存?(CPU缓存)
[] 追问:能讲讲CPU的缓存吗?它和内存有什么区别?
[] 追问:那你能讲讲如何做才能避免缓存不同步的问题吗?(MESI协议)
[] 追问:能讲讲这个协议吗?
[] DNS解析的过程是怎样的?
[x] 追问:DNS向其他几级服务器查询的时候,用的什么协议?
[] TCP的数据包有大小限制吗?(有,大了要分片)
[x] 追问:你知道这个限制是多大吗?(回答的1500字节,实际应该是1460字节)
[] 追问:比如我一个TCP发送方,在发送的时候一次性不能超过1500字节吗?(一个TCP包不能超过1500字节)
[x] 追问:实际上调用send的时候,这个地方会有限制吗?(不了解网络编程)
[x] 追问:接收方调用receive的时候,一次接受1500字节吗?(不了解网络编程)
[] TCP的servier端调用close关闭连接,这时候client端继续发送数据,会出现什么情况(我回答了正常的四次挥手的过程,但是面试官的不太满意,不了解close是怎么做的)
[] MySQL的事务怎么实现的回滚?(undolog)
[] 追问:讲讲undolog是个啥?
[x] 追问:它记录的是动作还是记录的数据?
[] 追问:每次操作都会向undolog中写内容,那如何解决undolog过大的问题?(我回答的效仿redis的AOF重写)
算法题如图:
#秋招# #面经# #腾讯# #后台开发# #软件开发笔面经#
全部评论
鬼鬼 这么多问题吗
这个算法你用字典树应该可以解决
已经很厉害了
进面了吗?
佬算法a出来了嘛?部门具体什么方向呀。
算法题只想到O(n²)的做法,感觉时间复杂度降不了。
我透,整这么难
看了一下,应该线段树
哥们咱俩这很像啊,算法一模一样,一个部门,我也挂了、、
我最怕的也是网络编程
b站 搜十二岁的闰土 打x的基本都有
m
问这么难?😢我去
大佬有无后续
蹲个后续
算法是acm核心代码模式还是leetcode那种不用写输入输出的呀
给你一个SP简历模板,希望可以帮到你
不用字典树吧,虽然复杂度最优但写法不是最优,可以直接n次前缀匹配,每次匹配长度i放到vec[i]里,对于第i个答案就是vec[i]+vec[i+1]+....,写起来简单不少但是复杂度跟字典树一样
请问是自己录音了吗
加油
相关推荐