您的位置:首页 > 职场人生

java面试经验总结

2018-03-10 13:23 218 查看
第一部分------计算机基础
一、ICMP协议是什么
1. ICMP协议全称Internet Control Message Protocol,即Internet控制报文协议
2. 是TCP/IP协议的一个子族,网络层。
3. 用于在计算机、路由器之间传递控制消息,如网络通不通、主机是否可达、路由是否可用等等。
4. ping命令即基于ICMP协议。

5. 路由跟踪的Tracert等命令也基于ICMP
二、DNS协议是什么
1. DNS全称Domain Name System,即域名系统,一个用于映射域名和IP地址的分布式系统。

2. DNS请求使用UDP协议,但本身属于应用层协议。
三、堆和栈的区别
1. 堆和栈在数据结构和编程语言实现里的意思不一样。
2. 作为数据结构,栈是后入先出的线性结构;堆是一个树,父节点总是大于(或者总是小于)子节点,用于实现优先队列。
3. 但在编程语言实现、运行时环境、虚拟机的语境下,栈(调用栈)是维护嵌套函数调用状态的结构,栈主要是保存局部变量的值和返回地址堆是动态内存分配的空间,生存期超出函数的范围,结构根据具体的分配算法以及垃圾回收算法而不同。

四、TCP和UDP的区别
1. TCP是传输控制协议,面向字节流提供拥塞控制功能UDP是用户数据报协议面向报文,尽最大努力交付数据;
2. TCP是面向连接的协议,UDP是面向非连接的协议。
3. TCP是传输可靠型协议,UDP是传输不可靠型协议。
4. TCP的速度较慢,UDP的速度较快。

五、TCP拥塞控制逻辑
1. 主要由拥塞窗口cwnd实现,具体逻辑主要包括慢启动快速重传快速恢复等。
2. 慢启动:窗口一开始很小(一般为1)但是很快地(指数级)增长上来,直到达到慢启动门限。
3. 快速重传:TCP利用3个相同的ACK来判定数据包丢失,开始快去重传
4. 快速启动:重传后的慢启动

六、TCP为什么断开连接要四次握手?
1. TCP是全双工的,每一个方向都必须单独进行开关,所以需要四次握手。而建立连接时发起者A的两个方向是默认打开的,B可以省去一个通知A打开的请求,所以只需要三次握手。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  计算机网络 java