面试时间(13:49----15:13)
一、自我介绍
二、C++基础
1、C++的特性
2、几种智能指针,shared_ptr--引用计数来实现,shared_ptr下面一个指针指向shared_ptr是否有问题:内存泄漏
3、STL中的vector,vector下面的push_back的时间复杂度
4、三个类,
class a{}
class b{int a; char b;int c;char d;virtual sa()}
class c{int a; int b;char c;char d;virtual sa()}
class d{int a; int b;char c;char d;}
b,c的sizeof长度是否相同:不同,因为内存对齐
5、内存管理,内存分为几部分:栈、堆、自由存储区、全局/静态存储区、常量存储区。自由存储区是啥?和面试官的知识出现分歧。。。
6、程序代码存储在哪一块?如果是你,会把虚函数表(还是程序代码还是啥)放在哪?-----------堆里,易于程序员修改
三、数据库
1、mysql的查询,当内容太多了怎么办---索引
2、底层的实现---B+树
2、哈希表的缺点,哈希冲突的解决办法
四、计算机网络
1、三次握手及第三次握手没有完成时,会发生什么(很多个客户端如此--服务端长期等待,会造成客户端真正要传输数据的进程受到影响)
2、四次握手中,wait_close是在主动关闭方还是被动关闭方:主动关闭方
五、linux
1、查看全部文件?若是文件特别多,只是想看文件的个数,用什么命令?
2、回到某一个路径下用什么命令?
3、创建一个目录或者文件的命令
4、查看端口的命令?-------lsof
六、数据结构:
1、快排的时间复杂度,最好,最坏情况
2、堆排的理解,出一个题,让实现堆排的第一次排序
七、智力题
狼、羊、菜、人过河问题
八、手撕代码
动态窗口最大值及优化(优化想考察的是双向队列)(写了十多分钟,完成了最简单的方法O(n*m),提出了一个较优的方法,预判决)
九、反问:略
面试时长83分钟,面试官人nice,很有耐心,会引导回答,考到我不会的他会自己嘻嘻的笑(醉了)。。。
全部评论
(6) 回帖