电话面试总结二

        今天晚上九点多,脑袋昏昏的,还在卖力的装女友双十一买的散装衣柜,一个电话面试就打过来了,本来信心就不是很足,但是还是有收获吧。

        ps:是一个linux c++后台开发的岗。

        开头大概寒暄了几句,我就自我介绍了一下,然后就是面试官发问了。

       一、熟悉那些服务器编程模型,我回答了apache、nginx和epoll,然后又问nginx怎么连接的,这个我肯定答不上来,因为apche和nginx我根本没学过,呵呵,后面再补学吧。

      二、M:你熟悉C++吧?

              W:比较熟悉吧。

              M:用C++实现单例模式。

              我大概描述了一下项目中一般用的单例模式,不过项目中其实实现的是懒汉模式,即需要时再初始化,但是我们的项目不存在多线程,所以无所谓了。

              http://www.cnblogs.com/weixliu/p/3900764.html  --最后的双重check是一个很大的考点啊。

              http://blog.csdn.net/hackbuteer1/article/details/7460019

              我意识到了线程安全性,提到了用加锁,面试官又问关于锁的粒度的问题,我大概描述了一下读写锁,就是多人可以读,只有一人可以写。

             M又问如果申请一片内存,把这个类用memcpy拷贝过去,那么就也可以调用这个单例类的函数咯?我回答了否,胡扯了一通,明显错了,汗!!其实类函数指针只不过是一个多了一个this指针参数的函数罢了。

            回来搜索一通,收获还是蛮大的:

            https://www.zhihu.com/question/27738023

            http://www.cnblogs.com/alephsoul-alephsoul/archive/2012/12/24/2831667.html  ----这篇博客很赞,这个例子也非常好,利用类B去调类A的函数指针,成功了。

      三、你熟悉网络编程吗?请描述一下服务器建立到连接一个客户端的过程?

              我回到了socket、bind、listen、accept (阻塞);

              accept发生在三次握手的哪一次握手?

              我回答了第二次,我想啊,客户端connect算是第一次握手,这时候服务器应该accept回复了吧。汗!!其实这些都只是发生在内核态,accept只有等这些握手完成完了之后才能从内核获取连接的文件描述符。

              如果第三次握手的ACK丢掉了,客户端是什么状态,我回答了ESTABLISHED,这应该是正确的吧。

      四、你熟悉数据结构算法吗?那么请实现一个长字符串,该长字符串由英文单词构成,单词之间有三个空格,头尾交换。

             想了大概5分钟左右,没想出来,回来搜了一下才知道是经典问题,先反转整个字符串,然后反转每个单词。

              http://blog.csdn.net/architect19/article/details/9000129?locationNum=7&fps=1

      

               现在觉得自己看的东西多,其实真正踏踏实实掌握的东西很少,希望自己以后静下心来细嚼慢咽,而不是狼吞虎咽,到头来只是一场空。

              回头想想,每个问题之前都问熟不熟悉,然后出一道题把我难住,真有点打脸的味道。最后面试官彬彬有礼的说道谢谢你的时间。

               ZZ加油,不管以前怎么样,以后的路要走的精彩,想做就别犹豫。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值