腾讯后台java开发岗--面试题集(一) 附答案 - Go语言中文社区

腾讯后台java开发岗--面试题集(一) 附答案


一面

1,Class和Struct的区别?

2,简述一下TCP连接的四次挥手过程,为什么不能挥三次手?


一面

1,Class和Struct的区别?

class 和 struct 最本质的区别 : class 引用类型,它在中分配空间,栈中保存的只是引用;而 struct值类型,它在中分配空间。→详情参考

2,简述一下TCP连接的四次挥手过程,为什么不能挥三次手?

TCP在传输之前会进行三次沟通,一般称为“三次握手”,传完数据断开的时候要进行四次沟通,一般称为“四次挥手”。

 TCP连接的四次挥手过程:

  1. 第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
  2. 第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
  3. 第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
  4. 第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

四次挥手的原因:

TCP建立连接要进行三次握手,而断开连接要进行四次。这是由于TCP的半关闭造成的。因此TCP连接是全双工的(即数据即可在两个方向上同时传递)所以进行关闭时每个方向都要单独进行关闭。这个单方向的关闭就叫半关闭。当一方完成它的数据发送任务,就发送一个FIN来向另一方通告将要终止这个方向的连接。→参考详情

3,

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/zzzzlei123123123/article/details/89081834
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-27 22:17:14
  • 阅读 ( 1332 )
  • 分类:面试题

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢