4.15 腾讯上海现场 后台开发 一二面面经

作者:NotThatEasy'
链接:https://www.nowcoder.com/discuss/74782?type=0&order=3&pos=2476&page=1
来源:牛客网

一面 (30min)

拉家常 简单问问简历上的经历

怼项目细节 核实简历真实性

关于项目优化的开放性问题(这里花了大概15分钟)

优化 优化 往死里优化,抛场景,然后给优化对策

new/malloc的区别

析构函数的作用

堆和栈的区别

C++17里invoke替代方案实现

bind的使用场景

future是干嘛用的

lambda的实质(编译器层面)

给代码,大致如下
 
1
2
3
4
5
6
class A;
void func(){
    char buffer[1024];
    A* ptr=new A;
    A* ptr2=new (buffer) A;
}
这两个指针之间的区别 。
以及:第一个指针离开作用域前要delete,那第二个指针是否必须delete?

Q&A

 

因为我学校在江苏,今天还要回校,QA的时候和面试官说明了一下,结果刚下楼就收到了面试官电话,说一面过了,总监现在正好在上海总部,让我现在过去接着面,真的是太Nice了。

然后就风尘仆仆的赶往了腾讯上海大厦,还好只有一站地铁。

 


二面 总监 (45min)

继续问简历上的经历

怼项目细节

了解哪些kv数据库

讲讲项目的难点,参考了哪些资料,具体做了哪些优化

看过哪些c++方面的书

问了<<effective c++>>里面一个重载new运算符的问题:

什么时候需要重载,重载有什么坏处,我只记得书上说尽量不要重载,卒。

个人项目的benchmark性能测试结果如何

问了一丢丢读写锁

项目里如何设计缓存来减少不必要的IO

执行一个系统调用时,OS发生的过程,越详细越好

执行一个IO调用写文件,到把数据写进磁盘发生的所有过程,越详细越好

TCP用了哪些措施保证其可靠性

OS怎么实现用户态和内核态之间的切换

内核态的函数调用和用户态的函数调用有何区别(没答上来)

Linux如何确定文件在磁盘上的位置

给一段代码:
 
1
2
3
class A;
A a;
a=a+100;
怎么实现类A可以支持以上操作。答了重载+号运算符,然后判断(a+100)是一个右值,这里我不确定,所以还说了要重载一个右值版本的赋值运算符。

然后面试官接着问,重载运算符应该是全局的还是类内成员函数,两者有什么区别,或者有什么好处坏处。

最近在看哪些书

未来的发展方向和规划
Q&A

大致就这些,可能有一些小问题没想起来,非常庆幸没让我手撕算法。
posted @ 2018-04-25 10:28  perfy576  阅读(133)  评论(0)    收藏  举报