BD的面试1

来源:互联网 发布:java可以多继承吗 编辑:程序博客网 时间:2024/04/29 19:43

在民族大道上,通知的9点面试,到的比较早,8:40+就到,大概等到不到9:10的样子就去通知面试了。


拿到面试的房间号是911,在电梯里面跟一个不认识的同学开玩笑,说数字不好,肯定会挂的。

见到了面试官,比较和蔼的一个人,年纪不大。首先是自我介绍,然后是问了一下项目,大概的讲了一下之后,问了我一个服务器端和客户端通信时,所用到的函数,我就跟他画到了三次握手的上面,顺便又让我写了四次握手。之后问知不知道虚函数,然后根据继承画了一下虚指针的分配吧。之后给了我一个算法题:一个文件里面有45亿整数,连续放置,一个整数4个字节,二进制方式连续放置,要求出至少出现两次的数字。思路一开始就是有的,是二分,但是我不记得文件处理函数的参数,就是fseek之类的,有点怕说错,就用其他的说了一下,发现他并不满意,对时间和空间不满意,没办法就跟他说二分,但是文件的处理函数的有些参数不太清楚,他说没关系,你可以找东西替代,然后比较顺利的写完。他问我是不是不会文件处理的函数,我说我会的,就是不太记得参数,他说没事,记得就可以百度的。写代码微微折腾了一下,然后期间还接到某团某评的电话。之后他又给我了个智力题,两列等间距的球,左边m个,右边n个,速度相同的相向而行,求碰撞次数。这个跟蚂蚁类似的是交换速度可以看作实际上没有碰撞,然后右边的球都去了左边,左边的都去了右边,然后答案就是m*n,顺便还用小的数字验证了一下。之后又问了一个动态库和静态库的问题,我不会,胡扯了一两句。然后问我有什么问他的,我就问了一下如果能过将来能去什么部门之类的,他告诉这个不确定,招聘是统一招聘的....然后我说没有问题的时候,他说就这样,赶紧去面一个吧。


总结:面试过程中表现还好,因为问的比较基础,所有该答的都答了上来,然后面试官人也比较好。虽然头一天晚上准备的基本都没用上,但是这个状态感觉还不错吧。  


PS:

linux中静态库和动态库的区别
一、不同
库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 
1. 静态函数库
    这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。
2. 动态函数库
    这类库的名字一般是libxxx.so;相对于静态函数库,动态函数库在编译的时候 并没有被编译进目标代码中,你的程序执行到相关函数时才调用该函数库里的相应函数,因此动态函数库所产生的可执行文件比较小。由于函数库没有被整合进你的程序,而是程序运行时动态的申请并调用,所以程序的运行环境中必须提供相应的库。动态函数库的改变并不影响你的程序,所以动态函数库的升级比较方便。
二、相同
都是由*.o目标文件生成

使用静态库的好处
1,模块化,分工合作
2,避免少量改动经常导致大量的重复编译连接
3,也可以重用,注意不是共享使用

动态库使用有如下好处:
1使用动态库,可以将最终可执行文件体积缩小
2使用动态库,多个应用程序共享内存中得同一份库文件,节省资源
3使用动态库,可以不重新编译连接可执行程序的前提下,更新动态库文件达到更新应用程序的目的。


0 0
原创粉丝点击