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

这篇博客整理了腾讯后台Java开发岗位面试中的一面问题,包括Class与Struct的区别以及TCP连接的四次挥手过程。Class主要在堆中分配,是引用类型,而Struct在栈中分配,是值类型。TCP四次挥手过程包括客户端发送FIN、服务器确认并发送ACK、服务器发送FIN、客户端再次确认并等待时间,确保所有数据已接收。四次挥手是为了确保双方都能完全关闭连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一面

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,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值