Java面试--网络篇(超级详细,看完迎接offer)

Java面试题---网络通信篇 Java网络通信篇一计网TCP和UDP有什么区别?TCP为什么是三次握手,而不是两次?java有哪几种IO模型?有什么区别?三级目录 一计网 TCP和UDP有什么区别?TCP为什么是三次握手,而不是两次? TCP transfer control protocol 是一种面向连接、可靠的、传输层通信协议。 特点:好比打电话:面向连接、点对点的通信、高可靠的、效率低,占用的系统资源比较多。 UDP user datagram protocol 是一种无连接的、不可靠的、传输层通信协议。 特点:好比是广播:不需 阅读详情

1、HTTP 响应码有哪些?分别代表什么含义?

HTTP响应码用于表示HTTP请求处理的结果。HTTP响应由一个状态码和可选的一些元数据组成,例如HTTP头部和消息体。以下是常见的HTTP响应码和它们的含义:

  • 1xx (信息性响应):这些状态码表示请求已经被接收,并且继续处理中。

    • 100 Continue:服务器已经接收到请求头部,并且客户端应该继续发送请求主体(例如,POST数据)。
    • 101 Switching Protocols:服务器已经理解并接受了客户端请求,将切换协议。
  • 2xx (成功响应):这些状态码表示请求已经被成功处理并返回。

    • 200 OK:请求已成功,请求所希望的响应头或数据体将随此响应返回。
    • 201 Created:请求已经被实现,且创建了新的资源。
    • 204 No Content:请求成功,但没有资源要返回,响应头和响应正文为空。
  • 3xx (重定向响应):这些状态码表示需要客户端进一步处理才能完成请求。

    • 301 Moved Permanently:所请求的页面已经转移至新的 URL。
    • 302 Found:所请求的页面暂时转移至新的 URL。
    • 304 Not Modified:资源未被修改,可以从客户端缓存中读取。
  • 4xx (客户端错误响应):这些状态码表示客户端请求有错误。

    • 400 Bad Request:请求无效,服务器无法理解它。
    • 401 Unauthorized:请求需要身份验证。
    • 403 Forbidden:服务器拒绝请求,没有访问权限。
    • 404 Not Found:所请求的资源不存在。
  • 5xx (服务器错误响应):这些状态码表示服务器处理请求时发生错误。

    • 500 Internal Server Error:服务器遇到意外的错误,无法完成请求。
    • 502 Bad Gateway:服务器作为网关或代理时,从上游服务器接收到无效响应。
    • 503 Service Unavailable:服务器暂时无法处理请求,通常是由于过载或维护。

2、Forward 和 Redirect 的区别?

Forward和Redirect都是用于在web应用程序中将请求发送到另一个页面或资源的技术,它们的主要区别在于浏览器与服务器之间的通信方式以及客户端是否会看到新的请求。

Forward是在服务器端完成的,当一个页面收到一个请求时,它可以将请求转发给另一个页面或servlet进行处理,然后将结果返回给浏览器。在这个过程中,浏览器不知道发生了任何转发,它仍然显示的是原始请求的URL。此外,因为所有的请求和响应都是在服务器上处理的,所以Forward可以访问同一应用程序中的所有资源和属性,比如在请求处理中创建的会话。

Redirect则是在客户端和服务器之间进行的,当一个页面收到一个请求时,它会发送一个响应,告诉浏览器重定向到另一个页面或资源的URL。浏览器会根据响应中的新URL重新发起请求,然后服务器将响应发送给浏览器。因此,Redirect会在浏览器的地址栏中显示新的URL,这意味着客户端会看到新的请求。由于这种方式涉及到两个请求,所以它需要额外的时间和资源,而且无法访问在前一个请求处理中创建的会话属性等资源。

总之,Forward和Redirect都是将请求转发到另一个页面或资源的技术,但它们的工作方式和适用场景不同。Forward更适合在同一应用程序中的不同页面之间共享数据和处理请求,而Redirect更适合在不同的应用程序之间进行页面跳转和处理。

3、 Get 和 Post 请求有哪些区别?

Get和Post是HTTP请求的两种常见方法,它们之间的区别主要有以下几点:

  1. 数据传递方式:Get请求通过URL传递数据,而Post请求通过请求体(request body)传递数据。具体来说,Get请求的参数会被追加到URL的末尾,形成一个带参数的URL,例如:http://example.com/search?q=keyword。而Post请求的参数则包含在请求体中,不会显示在URL中。

  2. 安全性:由于Get请求的参数直接暴露在URL中,因此容易被第三方获取和篡改,所以它不适合传递敏感信息,比如密码等。而Post请求的参数则在请求体中,相对于Get请求更加安全,适合传递敏感信息。

  3. 缓存:由于Get请求的参数包含在URL中,所以浏览器可以对其进行缓存,这意味着对于相同的URL,浏览器可以直接从缓存中获取响应结果,而不必重新发送请求。相比之下,Post请求不支持缓存,因为它的请求参数包含在请求体中,而请求体无法被浏览器缓存。

  4. 幂等性:Get请求具有幂等性,即对于相同的请求,重复发送多次不会对服务器产生任何影响。而Post请求不具有幂等性,即对于相同的请求,重复发送可能会产生不同的结果或产生副作用,例如创建一条新记录或更新服务器状态等。

  5. 适用场景:由于Get请求的参数直接暴露在URL中,因此适合用于请求非敏感信息,比如查询、搜索等场景。而Post请求适合用于提交表单、上传文件等需要传递大量数据或敏感信息的场景。

总之,Get和Post请求有各自的特点和适用场景,开发者需要根据具体需求和安全性要求选择合适的请求方式。

4、说说TCP与UDP的区别,以及各自的优缺点

TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是互联网上两个最常用的传输协议,它们有以下几点区别:

  1. 连接性:TCP是面向连接的协议,它在通信之前必须要建立连接,然后才能进行数据传输。而UDP是无连接的协议,通信双方不需要建立连接就可以进行数据传输。

  2. 可靠性:TCP是一种可靠的协议,它会在数据传输过程中进行错误检测和重传,保证数据的完整性和准确性。而UDP则不保证数据传输的可靠性,因为它不会进行错误检测和重传,数据可能会丢失或者乱序。

  3. 效率:由于TCP需要建立连接、进行错误检测和重传等额外的操作,所以相对于UDP来说,TCP的效率较低。而UDP的效率较高,因为它不需要进行额外的操作,数据能够更快地传输。

  4. 传输方式:TCP是面向字节流的协议,数据在传输过程中会被分成小的数据包,然后进行传输。而UDP是面向数据报的协议,数据以数据包的形式进行传输,每个数据包都是独立的,互不干扰。

  5. 适用场景:由于TCP具有可靠性和连接性,适合用于传输要求可靠的数据,例如网页、电子邮件、文件传输等。而UDP适合用于传输实时性要求较高、数据量较小的数据,例如音频、视频、游戏等。

总的来说,TCP和UDP各有优缺点,需要根据具体应用场景来选择合适的传输协议。如果数据传输的可靠性比较重要,可以选择TCP,而如果要求数据传输速度和实时性较高,可以选择UDP。

5、说一下HTTP和HTTPS的区别

HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)都是用于在网络中传输数据的协议,它们的主要区别如下:

  1. 安全性:HTTP协议是明文传输数据的,因此不够安全,容易被黑客攻击拦截、篡改数据。而HTTPS通过SSL/TLS协议对数据进行加密传输,可以保证数据的安全性,防止数据被窃取和篡改。

  2. 数据传输方式:HTTP和HTTPS的数据传输方式是不同的。HTTP使用的是明文传输,数据包裹在请求报文和响应报文中,传输过程中可能会被拦截和篡改。而HTTPS通过TLS协议对数据进行加密传输,数据在传输过程中不易被窃取和篡改。

  3. 端口号:HTTP默认使用80端口进行通信,而HTTPS默认使用443端口进行通信。由于HTTPS使用的是加密传输,因此需要额外的SSL/TLS协议进行加解密操作,会比HTTP多消耗一些系统资源。

  4. 证书验证:在HTTPS通信中,服务端需要提供数字证书,证书中包含了公钥和域名等信息。客户端通过验证证书的有效性,可以确认自己连接的是正确的服务器,防止中间人攻击。

总的来说,HTTPS相比于HTTP具有更高的安全性,能够保护数据的机密性、完整性和可信性,适合于需要保护用户隐私信息的场景。而HTTP则适用于一些不需要传输敏感数据的场景,例如一些公开的网站、博客等。

6、说说HTTP、TCP、Socket 的关系是什么?

HTTP、TCP、Socket 三者之间的关系如下:

  1. HTTP协议:HTTP是一个应用层协议,主要用于在客户端和服务器之间传输数据。它定义了客户端和服务器之间交换的格式、请求方法、响应状态码等。

  2. TCP协议:TCP是传输层协议,主要用于在网络中提供可靠的、面向连接的数据传输。在HTTP通信中,HTTP协议使用TCP协议作为它的传输层协议,通过TCP协议实现可靠的数据传输和流量控制。

  3. Socket:Socket是一个抽象的概念,是网络编程中使用的一个接口,用于进行网络通信。在HTTP通信中,客户端和服务器通过Socket实现数据的传输和通信。客户端通过Socket向服务器发送HTTP请求,服务器则通过Socket接收请求并向客户端发送HTTP响应。

总的来说,HTTP协议是应用层协议,负责定义客户端和服务器之间的通信格式和方式;TCP协议是传输层协议,负责在网络中提供可靠的、面向连接的数据传输;Socket是网络编程中的接口,用于在应用程序中实现网络通信。在HTTP通信中,HTTP协议使用TCP协议作为它的传输层协议,通过Socket实现客户端和服务器之间的数据传输和通信。

7、说一下HTTP的长连接与短连接的区别

HTTP长连接和短连接的区别主要在于连接是否重用的问题。

短连接指在一次HTTP请求/响应之后,客户端与服务器断开连接,下一次请求需要重新建立连接,这种方式也被称为非持久连接。在短连接的方式中,每次请求和响应的开销较大,因为每次都需要进行连接的建立和断开,而且对于每个TCP连接,都需要经过三次握手和四次挥手的过程,这会导致性能下降。

长连接指在一次HTTP请求/响应之后,客户端和服务器之间的连接不会立即断开,而是继续保持连接状态,等待下一次请求。在长连接的方式中,客户端和服务器之间可以进行多次请求和响应,而不必每次都进行连接的建立和断开,因此可以减少网络开销,提高性能。

在HTTP/1.0中,默认使用的是短连接方式,即每次请求/响应之后都需要关闭连接。而在HTTP/1.1中,引入了持久连接的概念,即默认使用长连接方式,可以在一次TCP连接中完成多个请求和响应。但是,由于长连接会占用服务器资源和带宽,如果客户端和服务器之间长时间没有活动,服务器可能会关闭连接,以释放资源。

总的来说,长连接可以减少网络开销,提高性能,但需要占用服务器资源和带宽。而短连接则可以避免资源和带宽的占用,但每次请求和响应都需要进行连接的建立和断开,会导致性能下降。因此,在实际应用中,需要根据具体情况选择合适的连接方式。

8、TCP 为什么要三次握手,两次不行吗?为什么?

TCP要进行三次握手的原因是为了确保双方都能正常收发数据。

在TCP建立连接的过程中,客户端发送SYN包(SYN=1,ACK=0)给服务器,表示请求建立连接,并且指定客户端的初始序列号。服务器收到SYN包后,会发送一个SYN/ACK包(SYN=1,ACK=1),表示确认客户端的SYN请求,并发送自己的初始序列号。客户端收到服务器的SYN/ACK包后,再发送一个ACK包(SYN=0,ACK=1),表示确认服务器的SYN/ACK,此时TCP连接就建立成功了。

如果TCP只进行两次握手,假设客户端发送的SYN包因网络延迟而丢失,那么服务器会认为客户端没有请求建立连接,不会回复任何数据包。但是客户端却认为连接已经建立成功了,可以发送数据了。此时,如果客户端发送了数据,服务器就会认为是一个错误的连接,会关闭连接并丢弃所有数据。这种情况下,客户端无法知道连接是否建立成功,也无法重发数据,因此会导致连接的不稳定性。

因此,通过三次握手的方式,可以确保客户端和服务器都能正常收发数据,避免了网络延迟等原因导致的连接建立失败的情况。

9、说一下 TCP 粘包是怎么产生的?怎么解决粘包问题的?

TCP粘包是指发送方发送的多个数据包,在接收方接收时粘成了一个大数据包的现象。TCP粘包产生的原因主要有以下几点:

  1. 发送方连续发送多个数据包,接收方在一次读取操作中将它们全部接收。

  2. 发送方发送的数据包比较小,多个数据包在网络传输中被合并成一个大的数据包。

  3. 网络传输过程中对数据包进行了分片,使得一个数据包被分成了多个数据包进行传输。

为了解决TCP粘包问题,可以采用以下几种方式:

  1. 添加消息边界:在每个消息的末尾添加特定的结束符,例如换行符或空格符等。接收方在接收数据时,根据结束符将消息进行拆分。

  2. 使用固定长度:规定每个数据包的长度固定,接收方在接收数据时,根据固定长度进行拆分。

  3. 添加消息头:在每个数据包的头部添加一些元数据,例如消息长度、消息类型等,接收方根据消息头中的元数据进行数据拆分。

  4. 使用应用层协议:应用层协议可以自定义数据包格式,规定每个数据包的内容和长度,接收方根据协议进行数据拆分。

总之,TCP粘包问题是由于TCP协议本身的特性导致的,解决粘包问题需要在应用层进行处理,常见的方式包括添加消息边界、使用固定长度、添加消息头和使用应用层协议等。

10、TCP 如何保证可靠性

TCP(传输控制协议)是一种面向连接、可靠的传输协议。TCP 协议提供了一些机制来保证数据的可靠性,主要包括以下几个方面:

  1. 应用数据被分成小的数据块,每个数据块被编号,以便接收方将其重新组装。

  2. 确认机制:TCP 协议使用了确认机制来确保数据的可靠传输。接收方收到数据后会给发送方发送确认消息,发送方收到确认消息后才会发送下一个数据块。

  3. 超时重传:TCP 协议会在规定时间内等待对方的确认消息,如果超过了规定时间还没有收到确认消息,就会重新发送该数据块。

  4. 流量控制:TCP 协议使用滑动窗口机制来控制发送方和接收方之间的数据传输速率,避免发送方发送过多的数据导致接收方无法处理。

  5. 拥塞控制:TCP 协议使用了拥塞控制机制来避免网络拥塞。如果网络出现拥塞,TCP 协议会减少发送方的发送速率,以便让网络有足够的时间来处理数据。

综上所述,TCP 通过多种机制来保证数据的可靠性,可以确保数据在传输过程中不会丢失、损坏或重复。

11、OSI 的七层模型都有哪些?

OSI七层模型是计算机网络体系结构的一种标准化框架,用于将计算机网络通信协议划分为七个不同的抽象层。这七层分别是:

  1. 物理层(Physical Layer):负责传输比特流,完成信号的发送和接收,如网线、光纤等物理介质。

  2. 数据链路层(Data Link Layer):在物理层的基础上,将比特流组织成帧,处理帧的传输错误和差错,如网卡、网桥等设备。

  3. 网络层(Network Layer):通过IP地址和路由协议实现数据包的转发和路由选择,如路由器、交换机等设备。

  4. 传输层(Transport Layer):提供端到端的可靠数据传输服务,如TCP、UDP等协议。

  5. 会话层(Session Layer):管理不同计算机之间的会话连接,如RPC等协议。

  6. 表示层(Presentation Layer):负责数据格式转换、数据加密解密、数据压缩等数据表示和处理。

  7. 应用层(Application Layer):为用户提供各种网络应用服务,如FTP、HTTP、SMTP、POP等协议。

这种七层模型的划分使得不同的协议功能划分更为清晰明了,方便实现和维护。

12、浏览器中输入:“www.woaijava.com”之后都发生了什么?请详细阐述

当在浏览器中输入 "www.java.com" 并按下回车键时,以下是浏览器执行的主要步骤:

  1. DNS 解析 浏览器会首先将域名 "www.java.com" 转换成对应的 IP 地址。为了完成这一步,浏览器会向本地 DNS 服务器发送一个 DNS 查询请求,以获取 www.java.com 的 IP 地址。

  2. 建立 TCP 连接 一旦浏览器获取到了服务器的 IP 地址,它会通过使用 TCP 连接来与服务器进行通信。浏览器会向服务器发送一个 SYN(同步)请求,请求建立一个新的 TCP 连接。

  3. 服务器响应 SYN 请求 服务器会接收到浏览器发送的 SYN 请求,并返回一个 SYN/ACK 响应。该响应表示服务器同意建立一个新的 TCP 连接,并请求浏览器向其发送一个确认消息。

  4. 确认连接 浏览器接收到服务器的 SYN/ACK 响应后,会向服务器发送一个 ACK(确认)消息,以确认建立新的 TCP 连接。

  5. 发送 HTTP 请求 一旦 TCP 连接已经建立,浏览器可以通过连接向服务器发送 HTTP 请求。HTTP 请求通常包含以下信息:

    • 请求方法(GET、POST 等)
    • URL 路径
    • 请求头(Accept、User-Agent 等)
    • 请求体(可选)
  6. 服务器响应请求 一旦服务器收到了浏览器的 HTTP 请求,它会返回一个 HTTP 响应。该响应包含以下信息:

    • 状态码(200、404 等)
    • 响应头(Content-Type、Set-Cookie 等)
    • 响应体(HTML、图片、JSON 等)
  7. 渲染页面 一旦浏览器收到了服务器的 HTTP 响应,它会根据响应中的 HTML、CSS 和 JavaScript 等内容来渲染页面,并显示给用户。如果页面中包含其他资源(如图片、视频、音频等),浏览器将继续通过网络请求这些资源,并将其显示在页面上。

13、如何实现跨域?

跨域是指在浏览器端发送请求时,请求的目标资源与当前页面所在的域名不同。由于同源策略的限制,跨域请求会被浏览器拦截,无法获取服务器的响应结果。下面介绍几种常见的跨域解决方案:

  1. JSONP

JSONP是一种利用script标签跨域获取数据的技术,它的基本原理是在客户端动态创建一个script标签,src属性指向跨域请求的URL,并指定一个回调函数名。服务端收到请求后,返回一个JavaScript函数调用的代码,并在其中传入需要传递的数据作为参数,由客户端的回调函数接收并处理响应结果。

  1. CORS

CORS是一种基于HTTP协议的跨域解决方案,通过在服务器端设置HTTP响应头的Access-Control-Allow-*字段,允许指定的域名在浏览器端跨域访问资源。CORS支持GET、POST等多种请求方法,并且支持对不同的请求方法设置不同的响应头。

  1. 代理服务器

代理服务器是一种将客户端请求转发到目标服务器的中间层,客户端只需要向代理服务器发送请求,由代理服务器代为请求目标服务器并返回响应结果。在代理服务器中可以设置不同的跨域请求规则,从而实现跨域访问。

  1. WebSocket

WebSocket是一种基于TCP协议的全双工通信协议,可以在客户端和服务端之间建立一条长连接,实现双向通信。由于WebSocket协议并没有同源策略的限制,因此可以用于跨域通信。

总之,跨域请求在Web开发中是一个常见的问题,需要开发者根据实际情况选择合适的解决方案。

14、TCP 为什么要三次握手,两次不行吗?为什么?

TCP 采用三次握手(Three-way Handshake)来建立连接,其目的是为了确保双方的通信能够正常进行,同时防止出现已失效的连接请求报文段被接收方误认为是新的连接请求,从而产生错误。下面是三次握手的具体过程:

  1. 客户端向服务端发送连接请求报文段(SYN):客户端发送连接请求报文段,其中 SYN 标志位被设置为 1,同时指定客户端的初始化序号 ISN。此时客户端进入 SYN-SENT(同步已发送)状态。

  2. 服务端接收到连接请求报文段(SYN):服务端接收到连接请求报文段后,会发送一个确认报文段(ACK),其中 ACK 标志位被设置为 1,同时将确认序号设置为客户端的 ISN+1,同时自己也选择一个初始序号 ISN。此时服务端进入 SYN-RECEIVED(同步已接收)状态。

  3. 客户端接收到服务端的确认报文段(ACK):客户端接收到服务端的确认报文段后,会再次向服务端发送一个确认报文段(ACK),其中 ACK 标志位被设置为 1,同时将确认序号设置为服务端的 ISN+1,同时将序号设置为客户端的 ISN+1。此时客户端进入 ESTABLISHED(已建立连接)状态,表示连接已经建立成功,可以开始传输数据了。

如果采用两次握手,假设客户端发送的 SYN 报文段丢失了,而此时服务端已经向客户端发送了确认报文段,客户端此时无法确定这个连接请求是否成功,因为客户端并没有收到服务端的确认。如果此时客户端再次向服务端发送 SYN 报文段,那么服务端会认为这是一个新的连接请求,从而产生错误。

因此,为了确保连接请求的可靠性,TCP 采用三次握手来建立连接。三次握手可以保证双方都已经确认了对方的存在,同时也确保了双方的初始化序号都是正确的。

15、说一下 TCP 粘包是怎么产生的?怎么解决粘包问题的?

TCP粘包是指发送方发送的多个数据包在接收方接收时被粘在一起,接收方无法正确地解析每个数据包的情况。TCP粘包问题通常发生在发送方快速连续发送多个小数据包时,由于TCP协议的流式传输特性,接收方可能会一次性接收到多个数据包,导致粘包现象的发生。

TCP粘包问题的解决方法通常有以下几种:

1.消息定长:在发送数据时,将每个数据包的大小固定为固定长度,接收方每次接收数据时,只需按照固定长度进行分割即可。

2.添加消息边界:在每个数据包的末尾添加特定的边界字符或字符串,接收方可以根据边界字符或字符串来判断每个数据包的结束位置。

3.使用消息头保存数据包长度:在每个数据包的消息头中添加数据包的长度信息,接收方在接收数据时,先读取消息头中的长度信息,再根据长度信息读取数据包。

4.发送方添加间隔时间:发送方在连续发送多个小数据包时,增加每个数据包之间的时间间隔,这样接收方可以分辨每个数据包的结束位置。

5.使用应用层协议解决:有些应用层协议本身可以解决粘包问题,例如HTTP协议中使用的分块传输编码(chunked transfer encoding)和Content-Length头部字段。

需要注意的是,以上解决方法并不能完全避免TCP粘包问题的发生,因此在实际应用中,开发者需要根据具体场景选择合适的解决方法,并且需要在程序中添加足够的错误处理机制,以应对TCP粘包问题的发生。

16、HTTP1.0、HTTP1.1、HTTP2.0的关系和区别

HTTP是一种应用层协议,用于在Web浏览器和Web服务器之间进行通信。HTTP/1.0、HTTP/1.1和HTTP/2.0是HTTP协议的不同版本,它们有以下的区别:

  1. 连接复用

HTTP/1.0每次请求都需要建立一次TCP连接,请求结束后关闭TCP连接,这样效率比较低。HTTP/1.1使用持久连接(Keep-Alive),可以在一次TCP连接上完成多次请求和响应,降低了TCP连接的建立和关闭次数,提高了效率。

HTTP/2.0在HTTP/1.1的基础上增加了多路复用,即在一个TCP连接上可以同时进行多个请求和响应,可以更加充分地利用网络带宽,提高传输效率。

  1. 请求头压缩

HTTP/1.0和HTTP/1.1的请求头信息没有压缩,当请求头信息过长时会占用很多的网络带宽。HTTP/2.0使用HPACK算法对请求头信息进行压缩,减少了网络传输的数据量。

  1. 二进制传输

HTTP/1.0和HTTP/1.1的数据传输是基于文本的,即使用ASCII码传输,数据包含大量的冗余信息,传输效率较低。HTTP/2.0使用二进制格式传输数据,更加紧凑和高效。

  1. 服务器推送

HTTP/2.0增加了服务器推送的功能,即服务器可以在客户端请求之前将相关的资源主动推送给客户端,提高了页面加载的速度。

  1. 请求优先级

HTTP/2.0支持请求的优先级设置,可以让客户端发送重要资源的请求先于其他请求,提高了页面的加载速度。

综上所述,HTTP/1.0、HTTP/1.1和HTTP/2.0都是HTTP协议的不同版本,它们的区别主要在于连接复用、请求头压缩、二进制传输、服务器推送和请求优先级等方面,HTTP/2.0相对于HTTP/1.1来说更加高效、安全和快速。

17、说说HTTP协议与TCP/IP协议的关系

HTTP协议是应用层协议,而TCP/IP协议是传输层协议。HTTP协议是基于TCP/IP协议栈之上的应用层协议,它使用TCP/IP协议的传输服务来完成数据传输。因此,HTTP协议与TCP/IP协议之间有着密切的关系。

HTTP协议使用TCP/IP协议提供的可靠传输服务,通过建立TCP连接、传输数据、关闭TCP连接来完成数据的可靠传输。在HTTP协议中,HTTP请求和响应消息的数据部分是通过TCP连接传输的。TCP连接的建立和关闭是由HTTP协议来控制的。HTTP协议通过在TCP连接上发送请求报文来发起请求,然后等待服务器响应,并在得到响应后终止TCP连接。

总之,HTTP协议与TCP/IP协议密切相关,HTTP协议使用TCP/IP协议提供的可靠传输服务来完成数据传输。

18、如何理解HTTP协议是无状态的?

HTTP协议是一种无状态协议,是指在HTTP请求和响应之间没有持久的、可供跟踪的连接。也就是说,对于同一个客户端发送的多个请求之间是没有联系的,服务器无法区分这些请求是来自同一个客户端还是不同的客户端。

HTTP协议的无状态性,使得服务器不能从请求中获取到之前请求的状态信息,需要在每次请求中都重新传递一遍状态信息,这就增加了服务器的负担,也导致了一些问题的产生。

为了解决这个问题,通常会使用cookie或者session机制来实现状态的跟踪。当客户端第一次请求服务器时,服务器会为其创建一个唯一的标识,将这个标识存储在客户端的cookie中,并在响应中返回给客户端。客户端在后续的请求中会携带这个cookie,从而使得服务器可以根据cookie中的标识来识别客户端,实现状态的跟踪。

需要注意的是,HTTP协议的无状态性并不是说HTTP不能保持状态,而是说HTTP协议本身没有机制来保持状态,需要依靠其他机制来实现。

19、什么是长连接和短连接?

长连接和短连接是指客户端与服务器之间的网络连接状态。

短连接:即客户端每发送一次请求,服务器就会响应一次,然后立即关闭连接。这样,每次请求都需要重新建立连接,这样会产生较大的开销。因此,短连接适用于一次性请求数据量较小的情况,例如简单的网页浏览。

长连接:即客户端与服务器建立连接后,不关闭连接,客户端可以连续发送多个请求,服务器也会连续响应多个请求,最后在客户端关闭连接或者服务器超时关闭连接时才会关闭连接。这样,客户端可以复用连接,减少了建立连接的开销,也避免了频繁地打开和关闭连接所带来的额外开销。因此,长连接适用于需要连续请求数据量较大的情况,例如图片、视频、音频等多媒体文件的传输。

总之,长连接和短连接都有各自的优缺点和适用场景,需要根据具体情况进行选择。

20、长连接和短连接的优缺点?

长连接和短连接的优缺点如下:

长连接的优点:

  1. 减少TCP连接建立的次数,降低了连接建立和断开的时间消耗,提高了性能;
  2. 减少了服务器的负担,避免了每个请求都要重新建立连接的情况,特别是在高并发的情况下,可以减少服务器的压力;
  3. 可以支持浏览器的长轮询和服务器推送技术,实现实时通信。

长连接的缺点:

  1. 长时间的连接可能导致某些网络设备(比如路由器、防火墙等)的缓存溢出,影响网络性能;
  2. 服务器需要维护大量的长连接,占用大量的系统资源,降低了服务器的可用性和稳定性;
  3. 由于连接的长时间性,一旦出现问题,调试和排查难度较大。

短连接的优点:

  1. 每个请求都是一个新的TCP连接,不会占用服务器的系统资源;
  2. 可以充分利用服务器的缓存机制,提高缓存的效率;
  3. 易于调试和排查问题,出现问题后可以快速定位。

短连接的缺点:

  1. TCP连接建立和断开的时间消耗较多,对服务器性能有影响;
  2. 无法支持浏览器的长轮询和服务器推送技术,无法实现实时通信;
  3. 每个请求都需要重新建立TCP连接,对于高并发的情况下,可能会对服务器产生较大的负担。

21、说说长连接短连接的操作过程

长连接和短连接的操作过程如下:

  1. 短连接的操作过程:
  • 客户端发送请求到服务器端。
  • 服务器端接收请求并响应请求。
  • 服务器端关闭连接。
  • 客户端接收响应并关闭连接。

短连接适用于传输数据量较小,需要频繁建立和关闭连接的场景,例如浏览网页、查询等操作。

  1. 长连接的操作过程:
  • 客户端发送请求到服务器端。
  • 服务器端接收请求并响应请求。
  • 服务器端保持连接,等待客户端再次发送请求。
  • 客户端再次发送请求。
  • 服务器端接收请求并响应请求。
  • 重复第3~5步,直到客户端关闭连接或超时。

长连接适用于传输数据量较大,需要频繁交互、复杂业务逻辑的场景,例如视频流、实时聊天等操作。

总之,长连接可以避免频繁建立和关闭连接所带来的性能损失,但也可能导致资源浪费和连接堵塞等问题,开发者需要根据具体需求和业务场景选择合适的连接方式。

22、说说TCP三次握手和四次挥手的全过程

TCP是一种面向连接的协议,进行数据传输之前需要先建立连接,数据传输完成后需要关闭连接。其中,建立连接需要进行三次握手(SYN,SYN-ACK,ACK),关闭连接需要进行四次挥手(FIN,ACK,FIN,ACK)。

TCP三次握手的全过程如下:

1.客户端向服务端发送一个SYN报文(SYN=1,ACK=0,seq=x)表示客户端请求连接,并随机生成一个初始序列号seq=x。

2.服务端收到客户端的SYN报文后,向客户端发送一个SYN+ACK报文(SYN=1,ACK=1,seq=y,ack=x+1)表示服务端同意连接,并随机生成一个初始序列号seq=y和确认号ack=x+1(表示服务端已经接收到客户端的SYN报文)。

3.客户端收到服务端的SYN+ACK报文后,向服务端发送一个ACK报文(SYN=0,ACK=1,seq=x+1,ack=y+1)表示客户端已经接收到服务端的SYN+ACK报文,确认连接已建立,同时客户端也随机生成一个初始序列号seq=x+1和确认号ack=y+1。

TCP四次挥手的全过程如下:

1.客户端向服务端发送一个FIN报文(FIN=1,ACK=0,seq=u)表示客户端要关闭连接,但是客户端仍可以接收服务端的数据,随机生成一个序列号seq=u。

2.服务端收到客户端的FIN报文后,向客户端发送一个ACK报文(FIN=0,ACK=1,seq=v,ack=u+1),表示服务端已经接收到客户端的FIN报文。

3.服务端向客户端发送一个FIN报文(FIN=1,ACK=1,seq=w,ack=u+1),表示服务端要关闭连接,并且也不能再发送数据给客户端了,随机生成一个序列号seq=w,确认号ack=u+1。

4.客户端收到服务端的FIN报文后,向服务端发送一个ACK报文(FIN=0,ACK=1,seq=u+1,ack=w+1),表示客户端已经接收到服务端的FIN报文,确认连接已关闭。

总之,TCP的三次握手和四次挥手过程可以保证数据传输的可靠性和正确性,确保数据能够准确地被发送和接收。

23、OSI 的七层模型都有哪些?

OSI的七层模型包括:

  1. 物理层(Physical Layer):该层主要定义物理传输媒介的传输方式,如光纤、双绞线、无线等。

  2. 数据链路层(Data Link Layer):该层负责数据的传输和控制,它会将数据分成帧并进行差错检测和纠正。

  3. 网络层(Network Layer):该层主要负责数据的路由选择和路径规划,以及网络拥塞控制和流量管理等。

  4. 传输层(Transport Layer):该层主要负责对端到端的传输进行管理和控制,包括错误恢复、流量控制、拥塞控制等。

  5. 会话层(Session Layer):该层主要负责建立、管理和终止会话,为应用程序提供可靠的通信服务。

  6. 表示层(Presentation Layer):该层主要负责数据的格式转换和加密解密等安全相关的功能。

  7. 应用层(Application Layer):该层提供各种应用程序所需的服务,包括文件传输、电子邮件、远程登录等。

24、OSI这样分层有什么好处?

OSI七层模型的分层设计有以下好处:

  1. 模块化设计:每一层的职责单一,各自完成自己的任务,不同的层之间相互独立,方便系统的设计、开发、测试、维护和升级。

  2. 易于扩展:因为每一层都有明确定义的接口和协议,所以可以方便地添加、删除、修改任何一个层次的实现。

  3. 简化复杂性:网络通信的复杂性被分解成了较小、易于管理和理解的组件,这些组件又可以细分为更小的子组件,从而降低了整个系统的复杂度。

  4. 按需使用:应用程序只需要使用需要的功能,而不需要关心底层的实现细节,比如某个应用程序只需要使用应用层和传输层的功能,而不需要了解物理层、数据链路层等的实现。

  5. 方便协议的独立开发:每一层都有自己的协议,不同的协议之间相互独立,可以独立开发、测试、维护、升级和替换,不会对整个系统产生影响。

总之,OSI七层模型的分层设计使得网络通信的复杂性被分解成了易于管理的组件,方便了系统的设计、开发、测试、维护和升级,同时也提高了网络通信的效率和安全性。

25、说说TCP/IP四层网络模型

TCP/IP 四层网络模型是一个通用的网络架构,它由以下四层组成:

  1. 应用层:应用层是网络应用程序和网络协议之间的接口,它为网络应用程序提供了接口和服务,包括 HTTP、FTP、SMTP、DNS 等协议。

  2. 传输层:传输层提供了主机之间的端到端通信,它通过 TCP 或 UDP 协议来实现数据传输。

  3. 网络层:网络层为主机之间提供了逻辑通信,它的主要功能是将数据包从源主机传输到目的主机,同时确定数据包的路由。网络层使用 IP 协议来实现数据包的传输。

  4. 链路层:链路层负责将数据包从一个节点传输到相邻节点,它通过物理地址来识别网络上的节点。链路层还负责在传输过程中进行错误检测和校验。

TCP/IP 四层网络模型的好处在于它提供了一种灵活的网络架构,不同的应用程序可以使用不同的协议,同时不同的协议可以通过不同的层次来实现。此外,TCP/IP 四层网络模型也提供了一种标准化的网络架构,它使得不同厂商的网络设备和应用程序可以互相兼容,实现互操作性。

26、说说域名解析详细过程?

域名解析的详细过程如下:

  1. 用户在浏览器输入要访问的网址,浏览器会先检查自己的缓存中是否有该域名的解析记录,如果有,则直接跳到第 7 步,否则继续进行域名解析。

  2. 浏览器向本地域名服务器(Local DNS Server)发出域名解析请求,本地 DNS 服务器通常由网络服务提供商(ISP)提供。

  3. 如果本地 DNS 服务器缓存中有该域名对应的解析记录,则直接返回给浏览器,否则继续进行域名解析。

  4. 如果本地 DNS 服务器缓存中没有该域名对应的解析记录,则向根域名服务器(Root DNS Server)发出请求,根域名服务器是全球 DNS 系统的顶层服务器,它不负责域名解析,而是负责将域名解析请求转发到下一级 DNS 服务器。

  5. 根域名服务器收到请求后,会根据请求的域名后缀(例如 .com、.cn)返回下一级 DNS 服务器的地址,例如 .com 域名的下一级 DNS 服务器地址。

  6. 本地 DNS 服务器根据返回的地址向下一级 DNS 服务器发出请求,依次进行迭代查询,直到找到该域名对应的 IP 地址。

  7. 本地 DNS 服务器将 IP 地址返回给浏览器,浏览器将该 IP 地址存储在缓存中,同时发出 HTTP 请求,请求该域名对应的服务器资源。

  8. 服务器接收到 HTTP 请求后,返回相应的 HTML、CSS、JavaScript 等文件,浏览器解析这些文件,最终将网页呈现给用户。

需要注意的是,由于 DNS 请求需要进行多级迭代查询,因此在网络环境较差或域名服务器负载较高时,域名解析速度会比较慢,会对用户的访问速度产生一定的影响。

27、 IP 地址分为几类,每类都代表什么,私网是哪些?

IP地址根据其所属的地址段划分为五类,分别为A、B、C、D、E类。

  1. A类地址:1.0.0.0~126.0.0.0,其中第一个字节为网络号,后面三个字节为主机号,支持最多2^24台主机。A类地址的第一位总是为0,表示这是一个类A地址。

  2. B类地址:128.0.0.0~191.255.0.0,其中前两个字节为网络号,后面两个字节为主机号,支持最多2^16台主机。B类地址的前两位总是10,表示这是一个类B地址。

  3. C类地址:192.0.0.0~223.255.255.0,其中前三个字节为网络号,后面一个字节为主机号,支持最多2^8台主机。C类地址的前三位总是110,表示这是一个类C地址。

  4. D类地址:224.0.0.0~239.255.255.255,用于多播(Multicast)。

  5. E类地址:240.0.0.0~255.255.255.255,保留地址,暂不使用。

私有IP地址是指在Internet上不使用的专门为局域网或组织内部使用的地址,用于内网通讯,不用于Internet。私有IP地址分为三类,分别是:

  1. A类私有地址:10.0.0.0~10.255.255.255

  2. B类私有地址:172.16.0.0~172.31.255.255

  3. C类私有地址:192.168.0.0~192.168.255.255

使用私有IP地址的局域网可以通过NAT技术实现与公网的互联,使得局域网内的计算机能够访问Internet,而且只需要一个公网IP地址即可。

28、说说TCP 如何保证可靠性的?

TCP(传输控制协议)使用以下方式来保证数据传输的可靠性:

  1. 三次握手建立连接:在数据传输前,发送方和接收方需要建立一个TCP连接,这个过程通过三次握手来完成。三次握手的目的是确保两端都认可这个连接,可以互相传输数据。

  2. 序列号和确认应答机制:TCP将每个字节进行编号,并在数据传输过程中要求对方对每个收到的字节进行确认应答,如果没有收到确认应答,TCP会重传该数据。

  3. 滑动窗口机制:滑动窗口是指TCP传输过程中,接收方对发送方可以连续发送的字节数进行动态调整,这样可以避免发送方发送过多数据导致接收方处理不过来。

  4. 超时重传机制:如果TCP在规定时间内没有收到确认应答,就会重新发送该数据。

  5. 流量控制机制:TCP通过流量控制机制来保证发送方发送数据的速度不超过接收方处理数据的速度,避免数据包的丢失。

总之,TCP协议通过以上多种机制,来保证数据的可靠性和正确性,确保数据在传输过程中不会出现丢失、错误和重复等问题。

java高频面试题含答案(网络) java高频面试题含答案(网络)1. http 响应码 301 和 302 代表的是什么?有什么区别?答:301,302 都是HTTP状态的编码,都代表着某个URL发生了转移。区别:301 redirect: 301 代表永久性转移(Permanently Moved)。 302 redirect: 302 代表暂时性转移(Temporarily Moved )。2. forward 和 redirect 的区别?Forward和Redirect代表了两种请求转发方式:直接转发和间接转发。直接转发方式(Fo 阅读详情

相关推荐

2021年华为Java面经,顺利收获Offer

前言 再过一周,马上将迎来新的一年,希望大家在2021年“牛气冲天,牛年大吉”,一起迎接春暖花开之时。 金三银四马上就到了,很多粉丝朋友私信希望我出一篇面试专题或者分享面试相关的笔记来学习,小编还是相当宠粉的,这不今天就给大家安排上了?(都是干货,错过就是亏。) 下面的面试笔记都是精心整理好免费分享给大家的,希望新朋友和老朋友不要吝啬你的赞和转发。 美团一面(80min) (为保证内容纯正,下面的语言是由程序员Y自己整理的,霸哥没有任何改动) 面试主要是从一个系统设计出发,考察基础跟项目架构经验。美团相

527

JAVA--计算机网络常见面试题

网络分层模型 - OSI七层模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层

Zero摄氏度的博客 1375

菜鸟程序员,被无良HR欺骗,因祸得福,竟“意外”拿下【得物】offer

前因后果 先讲述一下自己这次被无良HR欺骗坑惨的经历吧,面试的是一家上海某电商公司,给的薪资是不错。面试的时候,找我要了工资流水,然后给了我口头offer,就让我回去等了邮件了。回去之后就觉得offer没啥问题,稳稳当当了,就没再去面其他的公司,打起了游戏。结果等了两个礼拜也没等来邮件,问HR告诉我在走流程,我问是不是不要我,HR说要,让我继续等。 再过了几天我再去问,HR就怎么都不回我了,这个时候我才反应过来“坏了”。好在后来我马上开始面试其他的公司,阴差阳错拿到了美团的offer,这也算是因祸得福了。

Java_cola的博客 1132

网络协议面试题(Java网络编程)

网络编程的本质是多台计算机之间的数据交换。数据传递本身没有多大的难度,不就是把一个设备中的数据发送给其他设备,然后接受另外一个设备反馈的数据。现在的网络编程基本上都是基于请求/响应方式的,也就是一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。在网络编程中,发起连接程序,也就是发送第一次请求的程序,被称作客户端(Client),等待其他程序连接的程序被称作服务器(Server)。客户端程序可以在需要的时候启动,而服务器为了能够时刻相应连接,则需要一直启动。优点缺点使用参数传递机制问题。......

xiaobaijun_ge的博客 3210

【学习K230-例程46】GT6700-UVC摄像头

UVC模块提供了USB摄像头的检测、配置和图像采集功能,支持单摄像头操作。本实验通过开发板上的USB接口连接摄像头,将摄像头捕获到的画面显示在显示设备上。print(f"模式{i}: {mode.width}x{mode.height} {mode.format}@{mode.fps}fps")print(f"摄像头检测: {‘已连接’ if plugin else ‘未连接’}, 设备信息: {devinfo}")检测系统是否连接了USB摄像头(当前仅支持单个摄像头检测)。获取摄像头支持的所有视频模式。

GilgameshJSS的博客 807

SpringBoot项目整合达梦数据库(MYSQL 转换 达梦数据库)

注意:当迁移过程中出现下面问题时,如有触发器或者外键,需要先关掉触发器和外键,然后进行迁移,不然会导致迁移失败。(2)dm.ini修改【#compatibility】的【COMPATIBLE_MODE】=4。3、添加用户:如果导入的DM数据库需要和MYSQL的用户一样,添加ROOT用户。方法一:服务器配置:设置系统兼容性(DM控制台工具),兼容MySQL。服务器配置又该有两种方式:①DM控制台工具修改;MYSQL的数据表转换成DM的数据表时,点击转换按钮。在这里操作:MYSQL数据库迁移至DM数据库。

m0_74824635的博客 2013

java面试 socket_java网络编程面试题

1.网络编程时的同步、异步、阻塞、非阻塞?同步:函数调用在没得到结果之前,没有调用结果,不返回任何结果。异步:函数调用在没得到结果之前,没有调用结果,返回状态信息。阻塞:函数调用在没得到结果之前,当前线程挂起。得到结果后才返回。非阻塞:函数调用在没得到结果之前,当前线程不会挂起,立即返回结果。2.Java如何实现无阻塞方式的Socket编程?NIO有效解决了多线程服务器存在的线程开销问题。在NIO...

weixin_33937306的博客 1223

pgAdmin4备份恢复实战:从安装到避坑指南

本文提供了一份详尽的pgAdmin4备份恢复实战指南,涵盖从安装配置到执行备份恢复的全流程。针对Windows环境下的浏览器兼容性、二进制路径配置等常见问题,给出了具体解决方案。重点强调了使用pgAdmin4进行备份恢复的可靠性,特别是在处理包含PostGIS等扩展的数据库时,能有效避免数据类型和权限错误,确保数据迁移的完整性与安全性。

weixin_29266007的博客 439

新年成功拿下第一个java后端开发岗offer,分享经历希望对大家有帮助,接好运!

前言 时间过的很快,2020这个时候我还在家过春节。考完研我从武汉的学校回家了,很庆幸赶在武汉封城的时候回去了。 考完研就感觉不是很好,感觉自己考不上了。但内心依然抱着一丝希冀,自己也存着一种捡漏的心态。 过年期间就着手准备毕业设计,心里想着如果初试过了的话既能当作复试侃侃而谈的项目,没过的话就可以作为出去面试的项目并且顺便完成自己的毕业设计。 后来成绩出来了。 很拉胯,当时很平淡,后来觉得自己家庭条件不太允许自己二战,而且我又担心二战跪了无法接受失败的自己,同时能从父母的说话种感受到它们也不想让我考研。(

欢迎您访问我的公众号【前程有光】 8656

5g LDPC编译码-LDPC编码

本文摘要:LDPC编码是5G业务信道的核心编码技术,属于线性分组码。5G中LDPC编码分为两种基图类型(BG1和BG2),通过码块分割、CRC处理等步骤实现。编码过程主要涉及校验矩阵生成和校验位计算,其中校验矩阵采用稀疏矩阵结构。文中详细介绍了5G LDPC编码的具体实现流程,包括码块分割规则、校验位生成方法,以及两种基图(BG1和BG2)在矩阵结构和参数设置上的差异,重点阐述了通过模块化方法求解校验比特位的技术路径。

weixin_38270585的博客 1365

Unity 接入HybridCLR的点点滴滴,亲测三平台(PC、Android、WebGL)妥妥的。-问题分享

一入热更深似海啊,没有热更是真恼火啊,干啥啥不方便,动不动就得重新发包;说实在的,也是工作之余研究这个,在原有框架基础上接入这个热更,既要保持原有功能,还要支持热更,实实在在、断断续续搞了这么久,终于是接入并测通了,这一路是坎坎坷坷,下面把走过的弯弯绕绕记录下,希望对后来想接入的小伙伴有帮助吧。

GarFe的博客 1万+

疯狂备战:刷爆《Java权威面试指南(阿里版)》,金三银四拿offer不再是梦

这份面试题是根据周边朋友的经历整合的,共30页,每个问题都已给出详细的解答。以上便是这《Java权威面试指南(阿里版)》+《整理--阿里Java最新版面试集锦2024》的大致全内容,篇幅展现有限,大部分内容详情以截图展现,但都可提供完整的源文档给需要学习的你,点击文末小卡片即可!码字不易,整理收集更不易,各位认可的朋友多多转发支持一番!你的鼓励是我最大的动力,一起学习,一起加油,冲击“金三银四”!!

m0_62051288的博客 1087

Qt Creator菜单栏消失的终极修复指南:从快捷键冲突到设置恢复

本文详细解析了Qt Creator菜单栏消失的常见原因及修复方法,包括快捷键冲突排查、配置文件重置和界面模式切换等解决方案。特别针对Qt开发者遇到的菜单栏显示问题,提供了从简单快捷键操作到深度配置修改的全方位指南,帮助用户快速恢复Qt Creator的正常使用。

weixin_27240351的博客 338

小米YU7发布在即,你准备好迎接小米的挑战了吗?——面试题精选50题

小米YU7即将发布,本文精选了50道面试题,涵盖iOS开发、服务端开发、算法工程师、Android开发、测试开发及通用计算机基础等多个领域,帮助求职者备战小米面试。题目涉及属性声明、内存管理、排序算法、网络模型、二叉树遍历等知识点,旨在考察应聘者的技术深度和广度。同时,推荐使用AI面试神器「Offer蛙」,实时生成高质量答案,提升面试成功率。无论是准备小米YU7的发布,还是挑战小米的面试,这些题目都将为你提供有力的支持。

offerwa的博客 1870

DPO(Direct Preference Optimization)实战全流程指南

《DPO实战全流程指南》摘要 本文提供了端到端的DPO(直接偏好优化)实战方案,包含数据准备、模型训练、评估部署全流程。核心内容包括: 数据构建:推荐UltraFeedback等高质量数据集,提供数据预处理代码 训练配置:基于HuggingFace TRL库的DPO实现,详解beta值等关键参数调优 工业优化:显存节省技巧(LoRA、梯度检查点)、领域自适应方法和在线学习架构 效果评估:量化对比显示DPO可降低86%有害回复率,提升24%用户满意度 常见问题:针对灾难性遗忘、过度安全化等问题给出解决方案 附

技术引领业务创新 1468

无人机:DJI Matrice 200 Series_(13).行业应用案例分析

在前一节中,我们介绍了DJI Matrice 200系列无人机的基本硬件配置和性能参数。本节将通过具体的行业应用案例,分析如何利用DJI Matrice 200系列无人机进行二次开发,以满足不同行业的需求。

zhubeibei168的博客 1448

字节面试官:你没有高并发、性能调优经验,我离职后面试收割小米等大厂offer

在这个部分总结了2019年到目前为止Java常见面试问题,取其面试核心编写成这份文档笔记,从中分析面试官的心理,摸清面试官的“套路”,可以说搞定90%以上的Java中高级面试没一点难度。本节总结的内容涵盖了:消息队列、Redis缓存、分库分表、读写分离、设计高并发系统、分布式系统、高可用系统、SpringCloud微服务架构等一系列互联网主流高级技术的知识点。(上述只是一个整体目录大纲,每个点里面都有如下所示的详细内容,从面试问题——分析面试官心理——剖析面试题——完美解答的一个过程)

2401_83944560的博客 993

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Android:2021大厂直通车面试宝典,为你的offer保驾护航

一眨眼又到年底了,每到这个时候,我们都会慢慢反思,这一年都做了什么?有什么进步?年初的计划都实现了吗?明年年初有跳槽的底气了吗? 况且2020年我们经历了新冠疫情的洗礼,很多程序员都经历了失业,找工作的恐慌。导致今年的互联网环境太差,需要自己有足够的知识储备,才能够应对这凌冽的寒风。 本文主要是整理了中高级Android需要会的(或者说面试被频繁问到的内容),主要作为参考大纲,之后会陆续更新每个详细部分,供大家参考,互相学习。 一、计算机网络部分 1.网页中输入url,到渲染整个界面的整个过程,以及中间用了

bugmiao的博客 420

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【Android开发面试】金三银四求职季,一册在手Offer我有

朋友们,新年好呀,随着日子一天一天的过,一年一度的金三银四求职季也随之而来。对于咱们Android开发的小伙伴们来说,这段时间可是抓住好工作机会的大好时光。但你知道吗,要想在众多求职者中脱颖而出,成功拿到心仪公司的Offer,扎实的面试准备至关重要。这就给您隆重推荐小编耗费了大量的时间和精力精心编制的《Android高频面试题库+深度解析》,汇集了各大互联网公司近两年Android开发岗面试中最常考、最关键的问题,内容覆盖了Android基础知识、框架原理、性能优化、源码解读等方方面面。

m0_64365896的博客 252

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

背完这10个经典面试答案,80%的面试都能喜提offer

有90%以上的人选择了“一出门脑子里就有成千上百个更好的答案”,这代表什么?说明大家其实都比较有能力,但在面试时不能很好的展现出来…今天小编总结了10条经典面试的回答套路,让你在面试时有效地展示自己的才华,把握来之不易的机会!**谈谈你的简历(自我介绍)**可以根据以下三个步骤去回答问题,而且用不超过3分钟来阐述。简单开场:包括基本的教育经历和一些基本信息,一到两句就可以了。为什么要进入这个行业:比如说做过什么实习,参加过什么比赛,有过什么特殊的经历。

2401_83977689的博客 981

帮你快速拿Offer!记一次网易Java研发岗的面试经历

前言 再过一周,马上将迎来新的一年,希望大家在2021年“牛气冲天,牛年大吉”,一起迎接春暖花开之时。 金三银四马上就到了,很多粉丝朋友私信希望我出一篇面试专题或者分享面试相关的笔记来学习,小编还是相当宠粉的,这不今天就给大家安排上了?(都是干货,错过就是亏。) 下面的面试笔记都是精心整理好免费分享给大家的,希望新朋友和老朋友不要吝啬你的赞和转发。 Kafka源码篇——Kafka快速入门 1.1Kafka简介 1.2以Kafka为中心的解决方案 1.3 Kafka核心概念 1.4搭建Kafka源码

weixin_57992300的博客 131

【精】【拼多多实习,团队直推】hc多多,优先拿秋招offer

大厂硕2,想换换环境,投了几家,基本上都是失败或者评估中,目标最高优是家乡的中小厂,其次是一线城市大。网安方向的助理,更多偏向于文职类的工作,技术文档的整理之类的,有五险一金,双休,但是待遇很低,要出差。前端的学长学姐们,现在是大三,已经学完css,html,js,vue的一些前端知识,正在学习微信小程。求各位大佬指点,Java后端选手,腾讯和美团都是base成都目前腾讯还在评估中的状态,但是托腾讯员工。#机械制造薪资爆料# 给友友们分享一下这家公司,看学校的就业信息榜每年都有不少过去的,根据上一届机械。

华鑫的专栏 486

阿里P8大佬甩出的Java核心宝典,面试最全复习资料

希望你们拿到这些资料后认真阅读。毕竟是收集了一个多月的历年来各大厂面试资料,全部真题讲解带详细答案。最后的最后,祝你们都能斩获心仪的大厂offer!

javaAnPou的博客 157

腾讯T2大牛手把手教你!腾讯Java开发面试记录,全网最新

最重要的话 2021年,真希望行业能春暖花开。 去年由于疫情的影响,无数行业都受到了影响,互联网寒冬下,许多程序员被裁,大环境格外困难。 我被公司裁掉后,便着急地开始找工作,一次次地碰壁,完全消磨掉了自己的信心,突然感受到,面试已经越来越难了。 于是,我开始调整状态,着重于深耕技术知识,似乎一切开始了好转,最后斩获p7岗offer。 于是乎,我想把我的学习经历以及面试几十家互联网企业总结下来的面试经历分享给我的同行(Java程序员),希望你在金三银四,感受春暖花开! 02 JVM 线程 JVM内存区域

m0_57501529的博客 231

Java暑假面试突击训练营

为了迎接 9 月份即将到来的大规模秋招,也为了让大家找到更满意的工作,所以我决定开设一门《Java 暑假面试突击训练营》。整个课程为期一个月,是以视频直播的形式授课,系统的培训 Java 整个体系的常见面试题,下面是训练营的具体安排。培训知识点Java 基础常见面试题集合和并发编程MySQLRedisSpring + Spring MVC + Spring BootMyBatis + MyBati...

磊哥聊Java 360

金九银十我借200道Android研发面试题复习解析思路,斩获大厂Offer

2019年,“寒冬”之下,诸如“Android凉了”之类的话我已经屡见不鲜了,现在互联网行业的热潮已经褪去,开始恢复冷静,这样一来,互联网公司面向大量的开发者们,只会要求越来越高,部分Android开发者顶不住压力选择了转行,在此,我还是祝愿大家都能“活得满意,过得开心!” 与此同时,有很大一部分Android开发者仍在坚守。在这里,我可以明确的告诉大家Android没凉!未来5G、AI、物联网,...

weixin_45258969的博客 499
上一篇: Java面试--多线程(超级详细,接offer)
下一篇: Java面试题--Spring篇(超级详细,看完迎接offer)
Y
博客等级 码龄6年 2粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值