不愿看你迷茫,把清华毕业大佬整理的Java网络编程面试题分享给你

前言

大家平时在面试开发岗位的时候,是不是总觉得面试官问的问题,都感觉是在刁难自己呢?明明自己准备的知识都很充足,为什么偏偏问的都不是自己所掌握的?小编在这里告诉大家,你们就是缺少对应的面试题做指导,没有一个方向。面试造火箭,入职拧螺丝,所以说,面试对大家来说是非常重要的。

小编应大家的考虑,给大家分享清华毕业大佬所整理的Java网络编程面试题。因为内容实在是有点多,小编在这里只给大家把部分内容截图出来介绍,每小节都有更加细化的内容。

首先给大家分享Java网络编程面试题的问题大全目录

在这里插入图片描述

其次呢,是几个小知识点问题及答案的介绍

1、tcp和udp的区别
TCP:是面向连接的流传输控制协议,具有高可靠性,确保传输数据的正确性,有验证重发机制,因此不会出现丢失或乱序。

UDP:是无连接的数据报服务,不对数据报进行检查与修改,无须等待对方的应答,会出现分组丢失、重复、乱序,但具有较好的实时性,UDP段结构比TCP的段结构简单,因此网络开销也小。

2、tcp连接建立的时候3次握手,断开连接的4次握手的具体过程

  1. 建立连接采用的3次握手协议,具体是指:

l 第一次握手是客户端connect连接到server

l 第二次server accept client的请求之后,向client端发送一个消息,相当于说我都准备好了,你连接上我了

l 第三次 就是client向server发送的,就是对第二次握手消息的确认。之后client和server就开始通讯了。

2.断开连接的4次握手,具体如下:

l 断开连接的一端发送close请求是第一次握手

l 另外一端接收到断开连接的请求之后需要对close进行确认,发送一个消息,这是第二次握手

l 发送了确认消息之后还要向对端发送close消息,要关闭对对端的连接,这是第3次握手

l 而在最初发送断开连接的一端接收到消息之后,进入到一个很重要的状态time_wait状态,这个状态也是面试官经常问道的问题,最后一次握手是最初发送断开连接的一端接收到消息之后。对消息的确认。
3、什么是阻塞IO?什么是非阻塞IO?
在了解阻塞IO和非阻塞IO之前,先看下一个具体的IO操作过程是怎么进行的。

通常来说,IO操作包括:对硬盘的读写、对socket的读写以及外设的读写。

当用户线程发起一个IO请求操作(本文以读请求操作为例),内核会去查看要读取的数据是否就绪,对于阻塞IO来说,如果数据没有就绪,则会一直在那等待,直到数据就绪;对于非阻塞IO来说,如果数据没有就绪,则会返回一个标志信息告知用户线程当前要读的数据没有就绪。当数据就绪之后,便将数据拷贝到用户线程,这样才完成了一个完整的IO读请求操作,也就是说一个完整的IO读请求操作包括两个阶段:

1)查看数据是否就绪;

2)进行数据拷贝(内核将数据拷贝到用户线程)。

那么阻塞(blocking IO)和非阻塞(non-blocking IO)的区别就在于第一个阶段,如果数据没有就绪,在查看数据是否就绪的过程中是一直等待,还是直接返回一个标志信息。

Java中传统的IO都是阻塞IO,比如通过socket来读数据,调用read()方法之后,如果数据没有就绪,当前线程就会一直阻塞在read方法调用那里,直到有数据才返回;

而如果是非阻塞IO的话,当数据没有就绪,read()方法应该返回一个标志信息,告知当前线程数据没有就绪,而不是一直在那里等待。

10、Nio buffer 的内部结构是什么?

在这里插入图片描述
15、网络编程的一般步骤
对于TCP连接:

1.服务器端
在这里插入图片描述
32、简单说一下http协议?
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)。

HTTP 工作原理

HTTP协议工作于客户端-服务端架构上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。

Web服务器有:Apache服务器,Nginx,IIS服务器(Internet Information Services)等。

Web服务器根据接收到的请求后,向客户端发送响应信息。

HTTP默认端口号为80,但是你也可以改为8080或者其他端口。

HTTP三点注意事项:

l HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

l HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。

l HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。在这里插入图片描述
34、描述一下http协议服务器响应报文有哪些?
HTTP响应也由四个部分组成,分别是:

l 状态行

l 消息报头

l 空行

l 响应正文在这里插入图片描述

HTTP/1.1 200 OK
Date: Mon, 27 Jul 2009 12:28:53 GMT
Server: Apache
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT
ETag: "34aa387-d-1568eb00"
Accept-Ranges: bytes
Content-Length: 51
Vary: Accept-Encoding
Content-Type: text/plain

最后呢,分享的是Java网络编程面试题
在这里插入图片描述
在这里插入图片描述
由于篇幅限制,小编在这里就不做过多的介绍啦。在这里插入图片描述

发布了85 篇原创文章 · 获赞 7 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/Ppikaqiu/article/details/104776493