面经|西山居|一面 重面
3477
发布于 未知归属地

一面
邮件写着30min的面试,最后面了近70min,可能面试官看我基础不错,就想多问问,不过我自己对这场面试比较放松,所以就没有感到很紧迫的压力。
1.自我介绍。
2.gdb命令与coredump文件分析。
3.如何实现的利用标准库容器封装 char,实现自动增长的缓冲区。
4.如何实现的基于小根堆实现的定时器,关闭超时的非活动连接。
5.实现懒汉局部静态变量的单例模式。
6.改写实现懒汉式的另一种方式。
7.懒汉式存在线程安全问题的解决方法。
8.一个函数中有多个return语句,如何在多个return语句执行之前去关闭对应的文件描述符呢?
9.静态成员函数与非静态成员函数的区别。
10.局部静态变量与全局静态变量各自在什么阶段初始化。
11.在继承体系中,析构函数的调用顺序。
12.父类指针指向子类对象,在delete时析构函数又是如何被调用的,为什么。
13.父类指针指向子类对象,在delete时如何调用子类析构函数。
14.动态运行绑定时的原理。
15.如果一个类中有多个虚函数,类对象中是否只有一个虚函数指针呢?(是)
16.虚继承。
17.右值引用。
18.进程虚拟地址空间的分布。
19.说一下内存管理与进程间通信。
20.bss段和data段的区别。
21.内存映射是如何实现的呢。
22.是否考虑了项目中出现的粘包的情况。(没有)
23.ET模式与LT模式。
24.为什么用ET模式。
25.使用ET模式,在循环读取数据时,同一个套接字又有请求过来,请问是否会触发下一次的Epoll事件?(不会,会一次将到来的数据读完)
26.Tcp三次握手。
27.使用Tcp时,数据丢了怎么办。
28.Tcp在第三次握手时,服务器没有接收到客户端的ACK,此时服务器怎么办。

算法题:
LeetCode 141. 环形链表
LeetCode 160. 相交链表

之后就是闲聊,问我有没有玩过游戏,用一句话去形容你的每一位室友,是否了解我们公司。我感觉我这块答得不好,这应该是Hr该问的内容呀,自己又不玩游戏还要解释,说得又嫌自己啰嗦了,还不如不说呢,最后说感谢参加我司的面试,不知这句话是否蕴含什么意思呢,群友们可以猜想一下。

感受:感觉自己有些太放松了,回答得有些有气无力,不过也都基本回答出来,看得出来面试官还是比较欣赏我,不然30min的面试拖到70min才结束,不过最终还是聆听结果吧,毕竟这是多方面因素的共同影响的。

重面
Hr给我打电话,我以为一面表现不错,通知约二面的,结果Hr说一面没过,但是有其它项目组把我捞起来了,通知我再去其它项目组面试,约的是明天上午10:00的面试时间。
1.HashTable解决哈希冲突的几种方法。
2.HashTable在容量过大时是是采用什么策略去解决的。
3.有一个字符串s,有一个字符串t,判断串s在串t中出现的次数,允许重复,你是否能在O(m + n)的时间复杂度内解决它?(提示kmp)
4.虚函数的实现原理。
5.一个类对象的内存模型是怎样的?
6.虚函数表是在类对象内存的头部还是尾部呢。(头部)
7.虚继承。
8.逻辑地址是如何映射到物理地址的?
9.线程同步的方式。
10.讲一讲Socket通信的整个实现流程。(刚开始还想问Socket的实现原理,本质其实又回到了Tcp)
11.Tcp的三次握手。
12.Tcp的第一次握手对应Socket通信中客户端那一步。(connect)

面了45min,全程只有我开着摄像头,最后反问:"面试官在工作当中处理项目中的哪一部分?",回了一句:"处理逻辑",安静了一会,看到回答太简略又补充了一下,整个面试体验有些糟糕,而自己也有一些问题没有回答上来,后期得复习了。

评论 (4)