一面:(没录音靠记忆力整理)1h
一共三部分:
- 八股文:
tcp和udp的区别
tcp的滑动窗口(我答串了,串到拥塞控制的拥塞窗口去了)
常见的数据结构
vector的底层实现、map呢?set呢?红黑树介绍一下?(都答得不好)
malloc和new的区别
内存申请的底层实现(我答了从内存链上查找到第一块大小比申请内存大的返回,但他好像想问的不是这个)
频繁malloc 内存碎片怎么办(用两级内存机制避免?这个我自己也没学明白)
数据库:(薄弱项)
三个表怎么全局查询一个字段(不会)
我说我只会增删查改 后面就没再问了
- 项目
项目介绍没有章法可以说很混乱,以后应该先说做了一个什么系统,功能是什么,都有哪些模块(应该写一份介绍的文档背会记住,因为每次都问)
nginx负载均衡策略(我答了轮询和按权重,其实这俩应该是一种吧)
我的项目用了fastcgi,他问我fastcgi和cgi有什么区别,我说fastcig类似线程池
项目里遇到的难点 在数据一致性上掰扯了起码十分钟 是我的例子没讲好 上来直接说项目里用了“延时双删”的解决办法,应该一步一步说
- 做题
实现一个单例、懒汉模式、线程安全
问我知不知道懒汉和饿汉的区别
线程安全没写,就简单实现了一下,把getInstance()公有,构造函数私有。
(以后写这种类,上来要先把构造函数,析构函数,定义的函数先写好,再填写内容,起码结构是好的
单例还是记忆一下吧,自己写和看写好的差太多了,想不起来static加哪一下有点懵,面试官提示我怎么返回的赋值操作?)
二面(4.13)35min
项目:面试官不懂我的项目,没怎么问
数据库:又被问住了 mysql怎么实现事务的 四条命令 两条成功两条失败行不行
做题:
一道读代码的题:问输出
我阿巴阿巴半天 说了 malloc应该强制类型转换 printf不应该那么用 然后就开始在能输出和不能输出间反复横跳
最后面试官问我知不知道传值 我才说p的指向被修改了 传指针不能修改指针指向 应该用引用(就没有一眼看出这个问题,吐了)
void get_mem(char* p) { p = malloc(100); } int main() { char* str = NULL; get_mem(str); strcpy(str,"hello"); printf(str); }
网络不好没做成题,题目很简单,整型转字符串
然后问了一个1万条IP,找出现次数最多的那条,考虑内存问题。
早晨查状态,回到起点。。。
目前需要着重准备的:
1.自我介绍和项目介绍(写文档背会)
2.数据库!!!
3.刷题不能停,面试做题目一定要先说思路,既是给自己理清思路也是给面试官听,
遇到不确定的,要问,不要自己埋头写,觉得写完就完事了。
全部评论
(3) 回帖