一面 :
1. 网络编程经验: 如何判断一个http请求,一个客户端请求已经结束;如何处理服务器多线程 获得一个http请求后,是如何处理的?返回什么?有没有试过返回图片? 服务器给客户端请求时,是用什么函数写?服务器如何获取客户端请求,用什么函数 (需要函数级别的连接有一个认识)。
2. cv操作是什么函数 cv_init, cv_wait, cv_signal
3. 有一些关键词点击次数的文件,如何输出最多点击的一百个(当时应该回答,组织一个 100个元素的最大堆)
4. 相交链表,如何找相交点(不能要标记)
5. 有些文件,频繁访问在磁盘里头的,现在要放到内存中了。采用什么策略来决定哪些放 到内存中?
6. c语言相关:内联函数的好处?非内联函数被调用的过程是怎么样的? int,short,char的struct,这几个数应该怎么放,内存小?怎么防止头文件被include 多次?
7. 有没有什么问题想问的
8 linux 网络查看的
二面:
1. 介绍一个项目
2. 2.5亿个int数,可能有相同的。统计出这里头不同的数有多少个?只有2g内存。 (2.5*1000 000 000 * 4 =1G)
3. 海量数据,在mysql中,cpu占用率很高。如何解决? 1).show processlist,看哪个sql查询的多,建索引(问:建立联合索引时,要考虑什么 , 怎么建(哪个在前,哪个列在后?) 2).如果老是在拷贝到临时表,就改配置,把临时表内存改大些 3).还有什么方法: —— 1)分布式数据库 (问:如果你来设计分布式数据库,你会怎么设计?) —— 2)使用缓存 (问:如果缓存中的数据,被删除或跟新了,数据库怎么判断这个缓存的 数据不能用了,是脏数据?)(不懂) 问:什么情况下cpu会高?(内存不足)为什么内存不足cpu会高(频繁io读写)
4. n个无序int,(有正有负),给一个数v,如何找出其中的a+b=v的两个数
5. 网络相册 ,一个人可以有多个相册,一个相册有多个图片,如何快速实现增删查移动等 操作。web页面上,图片是翻页显示。 第五题我想不出好办法,我觉得一般他们都show thumbnail 就是预览小图片不把原始图片show在页面上,点击后才能看单个图片。
6. Unix系统里,一个简单的print hello world的c程序,从./a.out执行到屏幕打印出来 这句话,是什么过程 问:哪个进程来调用的main?(不知道)
7.socket编程,要注意什么问题
三面 :
1进程创建过程,
3. 主DB在接到数据更新后同步到后台DB,如何避免网络丢失之类的问题
4. N个bit,如其中有多少个1.(时间复杂度小于N)