面试题三

1.什么是泛型?
泛型:把类型明确的工作推迟到创建对象或调用方法的时候才去明确的特殊类型。就是编写模板代码来适应任意类型。
好处:不必对类型进行强制转换;编译期就对类型进行检查。
继承关系:
可以把ArrayList向上转型为List(说明,就是T不能变)
不能把ArrayList向上转型为List

2.网络的7层协议(OSI)?
从上到下分别是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
应用层:与其它计算机进行通讯的一个应用,它是对应应用程序的通信服务的。如http,ftp
表示层:这一层的主要功能是定义数据格式及加密。例如,FTP允许你选择以二进制或ASCII格式传输。如果选择二进制,那么发送方和接收方不改变文件的内容。如果选择ASCII格式,发送方将把文本从发送方的字符集转换成标准的ASCII后发送数据。在接收方将标准的ASCII转换成接收方计算机的字符集。示例:加密,ASCII等。
会话层:它定义了如何开始、控制和结束一个会话,包括对多个双向消息的控制和管理,以便在只完成连续消息的一部分时可以通知应用,从而使表示层看到的数据是连续的,在某些情况下,如果表示层收到了所有的数据,则用数据代表表示层。示例:RPC,SQL等。
传输层:这层的功能包括是否选择差错恢复协议还是无差错恢复协议,及在同一主机上对不同应用的数据流的输入进行复用,还包括对收到的顺序不对的数据包的重新排序功能。示例:TCPUDP,SPX。
网络层:这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
数据链路层:它定义了在单个链路上如何传输数据。这些协议与被讨论的各种介质有关。示例:ATM,FDDI等。
物理层:OSI的物理层规范是有关传输介质的特性,这些规范通常也参考了其他组织制定的标准。

3.Http和Https有什么区别?
传输信息安全性不同、连接方法不同、端口不同、证书申请方式不同。
传输信息安全性不同:
http协议是超文本传输协议,信息是明文传输。如果攻击者截取web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息;
https是具有安全性的ssl加密传输协议,为浏览器和服务器之间的通信加密,确保数据传输的安全。
连接方法不同:
http协议的连接很简单,是无状态的;
https协议是由ssl+http协议构建的可进行加密传输、身份认证的网络协议。
端口不同:
http协议使用的端口是80;
https协议使用的是443。
证书申请方式不同:
http协议是免费申请;
https协议是需要ca申请证书,一般免费证书很少,需要交费。

4.浏览器输入一个url到页面呈现的过程是什么?
DNS域名解析、TCP连接、发送HTTP请求、服务器处理请求并返回HTTP报文、关闭TCP连接、浏览器解析渲染页面。

5.TCP三次握手、四次挥手?
第一次握手:客户端向服务器端发送TCP连接请求数据包,其中包含客户端的初始序列号seq(A)=x。(其中报文中同步标志位SYN=1,ACK=0,表示这是一个TCP连接请求数据报文;序号seq=x,表明传输数据时的第一个数据字节的序号是x);
第二次握手:服务器端收到请求后,会发回连接确认数据包。(其中确认报文段中,标识位SYN=1,ACK=1,表示这是一个TCP连接响应数据报文,并含服务器端的初始序列号seq(B)=y,以及服务器端对客户端初始序列号的确认号ack(B)=seq(A)+1=x+1)
第三次握手:客户端收到服务器端的确认报文后,还需作出确认,即发送一个序列号seq(A)=x+1;确认号为ack(A)=y+1的报文;

第一次挥手:关闭客户端到服务器的连接:首先客户端A发送一个FIN,用来关闭客户端到服务器端的数据传送,然后等待服务器的确认。其中终止标志位FIN=1,序列号seq=u。
第二次挥手:服务器收到这个FIN,它发回一个ACK,确认号ack为收到的序号加1。
第三次挥手:关闭服务器到客户端的连接:也是发送一个FIN给客户端。
第四次挥手:客户段收到FIN后,并发回一个ACK报文确认,并将确认序号seq设置为收到序号加1。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。

6.HTTP请求中304状态码的含义?
304表示自从上次请求后,请求的网页未修改过;是对客户端有缓存情况下服务端的一种响应。
客户端在请求一个文件的时候,发现自己缓存的文件有 Last Modified ,那么在请求中会包含 If Modified Since ,这个时间就是缓存文件的 Last Modified 。因此,如果请求中包含 If Modified Since,就说明已经有缓存在客户端。服务端只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。

7.Http报文组成,里面分别有什么?
HTTP 报文是简单的格式化数据块。每条报文都包含一条来客户端的请求,或者一条来自客户端的响应。它们由三个部分组成:对报文进行描述的起始行(start line)、包含属性的首部(header)块,以及可选的,包含数据的主体(body)部分。

8.TCP和UDP有什么区别?
连接方面的区别、安全方面的区别、传输效率的区别、连接对象数量的区别。
a.连接方面的区别:
TCP面向连接;
UDP是无连接,即发送数据之前不需要建立连接。
b.安全方面的区别:
TCP提供可靠的服务,通过TCP连接传送的数据,五差错、不丢失、不重复、按顺序到达。
UDP尽最大努力交付,即不保证可靠交付。
c.传输效率的区别:
TCP传输效率相对较低;
UDP传输效率高,适用于对高速传输和实时性有较高的通信或广播通信。
d.连接对象数量的区别
TCP连接只能是点到点、一对一的;
UDP支持一对一,一对多,多对一和多对多的交互通信。

全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务