金山c++一面总结

  最近新冠肺炎疫情逐步减缓,广州也迎来好消息,0新增,0疑似。但是还是得宅在家里,周末闲着无聊,顺便更新了一下简历,意外收到了金山wps的面试邀请,预约了电话面试的时间,今天下午刚刚结束一面,今晚总结一下下午的面试情况。

  电话面试途中还因为信号问题中断了一次,还好我后面马上打回去了,不然就白白浪费了一次机会。开始先是自我介绍,巴拉巴拉几分钟后,进入正题。

问题1:听说你对网络编程比较熟悉,说一下tcp黏包怎么产生,又是怎么解决吧。

第一个问题直接懵逼,因为之前看过理论,但是自己之前做的相关的项目没有遇到这个问题,加上没有复习到。我只能回答不会,哈哈哈,场面顿时有点尴尬。

查了一下网上的回答:

产生原因:TCP粘包就是指发送方发送的若干包数据到达接收方时粘成了一包,从接收缓冲区来看,后一包数据的头紧接着前一包数据的尾。

解决方法一:可以每次发送同样大小的包,,过小的包,后面部分用固定的字符'\0'进行填充

解决方法二:每个包都给有固定的格式,比如开始符,结束符

问题2:那你说说如何快速找到单链表的中间结点吧。

回答:冥思苦想了20秒钟,这个好像也不会,心里想完了。后面想到思路回答说,定义两个指针A,B,因为单链表最后的结点指针域指向空,用A指针每次遍历两个结点,B指针每次遍历1个结点,当A指针指向空时,B指针所指向的就是中间结点。因为比较紧张,把A遍历2次说成了3次。。

问题3:说一下网络拥塞是怎么造成的

扫描二维码关注公众号,回复: 10079476 查看本文章

回答:这个也不会,但是只能硬着头皮答,因为接收端的缓冲区不够大,当接收端还没处理完,发送端却在一直发送数据过来,语无伦次,直接被面试官打断。。

百度答案:网络拥塞(network congestion)是指在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况。

问题4:tcp如何保证可靠的服务

回答:这个也不会,只能借着一点点印象回答,比如超时重传,对无序的包进行排序,确认响应等

后面回答说做过udp发送数据,在每一个字节流面前加上标识符,然后接收端通过判断标识符,来确保传输的顺序,如果发生错误,会发送信息给发送端,要求重新发送。答得很水,对tcp这一块很久没复习了,虽然之前看过。这里得到感悟,千万不能打无准备的仗啊。

问题5:说一下c++字节对齐的作用

可能因为觉得我网络编程太水了,没有再问网络的知识,哈哈哈。回答:结构体中遇到字节对齐的问题,作用主要是为了数据存取的效率可以提高。

问题6:说一下动态链接库和静态链接库的区别

回答:动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,只是在其中加入了所调用函数的描述信息,程序在运行时才会调用动态库存放的接口代码。静态库则反之。

问题7:父类析构函数为什么要加virtual

回答:要想通过父类的指针释放通过子类对象,必须将父类的析构函数设置为virtual。

问题8:c++11用过么

回答:用过auto,for循环,<thread>等

问题9:共享指针实现原理

回答:采用引用计数器的方法,允许多个智能指针指向同一个对象,每当多一个指针指向该对象时,指向该对象的所有智能指针内部的引用计数加1,每当减少一个智能指针指向对象时,引用计数会减1,当计数为0的时候会自动的释放动态分配的资源。 

问题10:c++ static_cast和const_cast的区别,用过么,有什么作用

这个最基础的,因为很久没用了,我没答上来,尴尬。回答:用过,但是具体作用忘了。

记录一下作用:static_cast主要用于C++中内置的基本数据类型之间的转换,但是没有运行时类型的检测来保证转换的安全性。

const_cast可以使一个本来不是const类型的数据转换成const类型的,或者把const属性去掉。 

问题11:10万个数据找到最大的100个数怎么实现?

回答:我会采用快速排序算法进行排序,再拿到最大的100个数。还有更好的办法么?一时之间想不起来了。

问题12:平时喜欢看什么技术书籍么

回答:stl源码,喜欢玩玩脚本语言,侯捷相关的c++书籍。

问题13:你对自己有什么期待

回答:我渴望成为技术leader, 踏实进步。

一面到此结束,自我感觉回答的很差,也很水。

体会:网络编程的相关概念还是很重要,需要多多复习,多多实践。虽然一直在忙公司的业务,但是c++基础和网络编程要多复习,多实践。

末尾:晚上收到了hr的回复,说自己通过了一面,下周二面,很意外,因为之前觉得自己答得比较差,以为没有机会了,加油吧,继续冲刺。

发布了133 篇原创文章 · 获赞 175 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/c_shell_python/article/details/104420260