百度面试
1、考虑一个Int64的整型。若计算一个数的各位数上的平方和,通过不断迭代最终得到1,则称这个数为有趣的数。现给定一个数,判断该数是否为有趣的数?若判断一个数组的数呢?
2、TCP与UDP的区别
可靠传输(三次握手、四次挥手)、点对点传送、滑动窗口和流量控制、复杂协议(首部20字节)
尽最大努力传输、点对点和广播、没有流量控制、简单(首部8字节)
3、项目中文件服务器如何支持断点续传?
4、堆与栈的区别
一、堆栈空间分配区别:
1、栈(操作系统):由操作系统自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈;
2、堆(操作系统): 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,分配方式倒是类似于链表。
二、堆栈缓存方式区别:
1、栈使用的是一级缓存, 他们通常都是被调用时处于存储空间中,调用完毕立即释放;
2、堆是存放在二级缓存中,生命周期由虚拟机的垃圾回收算法来决定(并不是一旦成为孤儿对象就能被回收)。所以调用这些对象的速度要相对来得低一些。
三、堆栈数据结构区别:
堆(数据结构):堆可以被看成是一棵树,如:堆排序;
栈(数据结构):一种先进后出的数据结构。
5、析构函数为虚函数的作用。
6、普通类的析构函数对异常有什么要求?
7、TCP流量控制和拥塞控制
8、如何在main函数调用前处理一些事情,main函数前会有什么操作
9、程序中出bug,从哪些方面考虑找bug
语法、内存溢出、内存泄漏
10、扑克牌均分3堆,求大小王在同一堆的概率。
11、服务器中端口复用
当服务器需要重启时,经常会碰到端口尚未完全关闭的情况,这时如果不设置端口复用,则无法完成绑定,因为端口还处于被别的套接口绑定的状态之中。