面试问题--找工作的历程
近期找工作的过程中,因为自己比较喜欢C/C++,对多线程以及网络方面比较熟悉,
所以下面的这些问题是这段时间在面试过程中被问到了,现在对这些问题进行了汇总!!
面试过程真的是一个非常好的学习过程,下面那些问题自己现在基本可以解决,
我的答案或者观点就不给出了,看到这篇文章的同学可以根据自己的情况,测试一下自己....哈哈...
也可以当成一次学习的过程,网上搜索出来的结果可能会更详细。。。动手吧。。。
一、网络(主要是TCP/UDP)
(1)、TCP的三次握手连接:两端主机状态(SYN_SEND,SYN_RECV,ESTABLISH),数据包类型(SYN,ACK),整体过程
(2)、TCP的四次挥手:主机状态(FIN_WAIT_1,FIN_WAIT_1,TIME_WAIT,CLOSE_WAIT,LAST_ACK,CLOSED),数据包类型(FIN,ACK),
问题1:TIME_WAIT状态有什么用?时间有多长?
问题2:四次挥手中,服务端接收到FIN包后,回应ACK包后,还能否继续发送数据?为什么服务端把ACK包和FIN包分开发送?
问题3:TCP协议的REST包有什么用?
问题4:TCP协议里的PSH包和URG包的区别?
问题5:TCP包中紧急指针有什么用?那部分为紧急数据?
问题6:TCP的可靠传输机制有哪些?
问题7:TCP和UDP以及IP三者的区别?
问题8:TCP包和UDP包的长度?
问题9:TCP传输的效率和UDP传输的效率的讨论。。
问题10:ping命令使用的是什么协议?实现的原理?
问题11:输入一个链接到游览器显示页面的整个过程?尽量详细说出来
问题12:如果打开一个链接打不开,如果去查找原因?
问题13:ARP获取物理地址(MAC地址)的过程?
问题14:DDoS攻击的原理?有哪些方式(an:如SYN洪)?如果防止这种攻击?
推荐博文:
http://kb.cnblogs.com/page/144577/
http://blog.csdn.net/dog250/article/details/6612496
http://blog.csdn.net/dog250/article/details/6896949
二、多进程多线程
问题1:多进程和多线程的联系和区别?
问题2:多线程的同步和互斥机制?(注:有些机制只能用于互斥)
问题3:临界区和互斥量的区别? (注:一个不是内核对象,一个是内核对象)
问题4:多进程的通信机制?
问题5:死锁的原因和条件? (注:三个原因和四个必要条件)
问题6:fork()函数的应用? (注:2013腾讯软件开发笔试题)
for(i = 0; i < 2;i++)
{
fork();
printf("-"); //输出多少个‘-’号? 若改为printf("-\n");那么结果又有多少个?
}
问题7:进程地址空间结构? (注:用户地址空间:低到高:代码区、data区,bss区,堆区、....(映射区)、栈区)
问题8:使用内存共享机制时,内存映射到进程地址空间的什么位置?
推荐博文:
http://www.ibm.com/developerworks/cn/linux/l-ipc/part1/index.html
http://www.cnblogs.com/bizhu/archive/2012/10/09/2717293.html
三、C/C++方面的问题
问题1:多态实现机制?虚表的原理?
问题2:虚继承时,对象的内存空间结构以及虚表结构? (注:深度探究C++对象模型那本书有详细介绍)
问题3:智能指针实现原理? (注:auto_ptr,shared_ptr,weaked_ptr...)
问题4:new和delete、malloc和free的问题?
问题5:const、#define以及inline的区别
问题6:vector内部的内存维护原理?有什么缺点? (注:迭代器失效)
问题7:vector释放内存方式?写出代码 (注:一种是强制调用其析构函数)
问题8:内存对齐问题? (注:可以使用#pragma pack()处理)
问题9:类对象结构问题?static变量放在内存的哪个区?static函数呢?类对象大小的计算?
问题10:继承过程中,派生类对象结构的变换?虚表的变换
问题11:覆盖和重载的区别?
问题12:MFC中为什么使用消息映射机制而不使用继承机制实现?
问题13:消息队列和消息映射之间的联系和区别
推荐博文:
http://blog.csdn.net/jimmy54/article/details/5418766
(内存池的介绍,相当详细):
http://www.ibm.com/developerworks/cn/linux/l-cn-ppp/index6.html#ibm-pcon
四、海量数据处理已经分布式方面问题(我只是了解的水平..哈哈..还在学习中...)
问题1:海量数据处理的思想?
问题2:海量数据处理一般会使用到的方式?
问题3:了解哪里分布式系统? (注:我当时介绍了MapReduce,其实可以从GFS,BigTable以及MapReduce入手,以及三大技术的应用,Hadoop)
推荐博文:
http://blog.csdn.net/opennaive/article/details/7514146
http://blog.csdn.net/opennaive/article/details/7483523
http://blog.csdn.net/opennaive/article/details/7532589
http://dongxicheng.org/category/mapreduce/
http://www.cnblogs.com/lovexinsky/archive/2012/03/09/2387583.html
下图是我参加校招过程的一些记录,我是在这样的一个过程中成长的....哈哈...带有一些吐槽哈...
因为花一天重新修改了简历,360那里成为完美分割线。。。。不辜负我的心血...
引用:“多点不会发财,少点不会饿死,关键是兴趣就是工作,工作就是兴趣,人生也就这样,做到自己的定位很重要。”
发现这句话对于一个应届生相当重要!!很多同学现在只看重待遇怎么样!!然后就直接签了!!希望还在找工作中的
同学好好体会一下我上面引用的那句话。