3.28 腾讯后台一面

部门: CSIG 腾讯安全 上海科恩实验室
有点久远,尽量回忆

C/C++ 拷打底层…
new和malloc区别(new调用构造器等等)
操作系统分配内存的单位(页)
操作系统分配一页,这一页一定可读可写可执行吗(不会,页表里有RWX权限)
访问malloc分配的指针一定偏移之后的地址会怎样(UB)
什么情况下会触发Segmentation Fault(解引用空指针、野指针、数组越界、delete两次)
free两次如何定位第一次free的位置(不会,g++ -fsanitizer可以看)
析构器的调用顺序(先派生类后基类)
内层函数抛异常,外层函数catch到,中间层函数的局部变量是否会调用析构器(会)
如果析构时又抛异常,catch的是哪一个,如果是新的,老异常还能捕捉到么(流汗了从来没想过这些,被带到坑里了。。实际上析构器都是隐式noexcept(true),抛异常会直接调用std::terminate)
异常的底层原理了解么,汇编层面上的(印象中是jump到某处别的都不了解,实际是通过栈展开实现)
c++哪个特性类似go interface(一开始以为是interface{}, 说了void*,后来说了抽象类和纯虚函数)
纯虚函数能有方法体么

k8s
两个pod一定能相互访问么(不一定)
k8s是否一定依赖vlan(我对vlan的定义好像有点偏差,所以说了感觉是。。)
除了vlan还有哪些网络插件(不会,flannel, calico, cilium)
服务更新后如何不停机上线新服务(Deployment灰度发布)
那是应用层面的,如果在IP层面呢(说了tcp有reuse_addr选项,新服务应该能接替上)
这是在一个电脑上,如果是多台呢(开始胡言乱语扯了一通反向代理)
那tcp长连接有keep alive如何优雅结束呢(不会,后来看到QUIC有IP迁移,感觉可能是想问QUIC?)

go
channel有无缓冲的区别(阻塞时机)
interface{}怎么判断nil(不会。。代码写少了没碰到过这巨坑,用reflect.IsNil)
channel关闭了后发送方再写会怎样(panic)
怎么检测到已经关闭(发送方不应该读,说了用context)
用过context么(没有,只是知道有这个)
多态怎么实现的(知道是胖指针,具体不会)

unicode和utf8的关系

无手撕

太痛苦了被疯狂拷打,面完给了个作业五天内做完,做完发邮件之后没回应,拖了十几天挂了
#腾讯面经#
全部评论

相关推荐

2 25 评论
分享
牛客网
牛客企业服务