Java测开面试准备第一天

接口和抽象类:

接口不可以有构造方法,可以多继承,常量都是static final的,方法都是public abstract的,接口中的定义方法需要实现类来实现,如果不能实现接口中的所有方法,则实现类定义为抽象类。

抽象类有构造方法,抽象类的子类需要实现子类的抽象方法(如果不实现,需要定义成抽象的),抽象类中的抽象方法。

抽象方法不能用private、static、synchronized、native访问修饰符修饰,但可以用public、protected、default修饰。

抽象类可以实现接口,抽象类不必实现接口的方法。

在这里插入图片描述

继承:

重写override,核心重写

重载overload,同方法名,不同参数,

super和this关键字:this和super不能同时出现在一个构造函数里面

如果父类只存在有残构造器,不存在无参构造器时,子类需要在无参构造器中加入super()

多态:

编译看左边,运行看右边

A a = new B()//B是A的子类

当a.test(),编译的时候看的时候A的test方法,而运行时运行的是B中的test方法

反射:

对任意一个类,都知道这个类的所有属性和方法;对任意一个对象,都能够调用它的方法和属性。

 

(看得无聊,直接跳到计算机网络了)

forward和redirect:

forward是服务器请求资源,URL不变。转发页面和转发到的页面可以共享request的资源。一般用于登录时候,根据角色转发到相应模块。效率高。

redirect发送一个状态码302,告诉服务器重新去请求新的地址。不能共享request数据。一般用于注销登录,跳转到其他页面。效率低。

URL组成:

<协议>://<主机>:<端口>/<路径>

端口号默认80(可以省略)

IP地址:

ip地址=网络地址+主机地址

子网掩码:

用来判断任意两台计算机的ip地址是否属于同一子网络的根据。

网关(Gateway):

路由器相当于传统的网关。网关能在不同协议间移动数据,而路由器是在不同网络间移动数据。默认网关一般填写192.168.x.1

DNS 服务器:

域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器

MAC地址:

48比特(6个字节)

ARP(地址解析协议)负责将ip地址映射到MAC地址上。

动态IP和静态IP:

动态上网,DHCP上网,自动获取ip;静态ip上网,固定的ip

交换机:工作在OSI的第二层

路由器:工作在网络层

OSI参考模型:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。

四层模型:数据链路层,网络层,传输层,应用层

http协议:

应用层面向对象的协议,是一个客户端和服务器端请求和应答的标准(HTTP协议运行在tcp之上,明文传输,客户端和服务器端都无法验证对方身份)。

支持C/S模式;客户向服务器发送请求方法和路径,请求方法常用的有get,head,post...

每种方法规定了客户和服务器联系的类型不同,由于http协议简单,使得http服务器的程序规模小,通信速度快。

灵活:http允许传输任意类型的的数据对象,正在传输的类型由content-type标记。

无连接:每次连接只处理一个请求,服务器处理完客户的请求,并受到客户的应答,即断开连接。

无状态:http协议无状态协议,无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,必须重传,这样导致每次连接传送的数据量增大,另一方面,在服务器不需要先前信息时它的应答就较快。

https协议:

是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入了SSL层,HTTPS的安全基础是SSL。https主要作用:一是建立一个信息安全通道来保证数据传输的安全,另一种是确认网站的真实性。

https是运行在ssl/tls之上的HTTP协议,https是添加了加密和认证机制的http。

http和https的不同:

端口:http是80,https是443

资源消耗:https会加减密处理消耗更多的cpu和内存资源

开销:https通信需要证书,而证书一般需要向认证机构购买

http/1.0、http/1.1、http2:

http:(三次握手四次挥手)

请求阶段:浏览器帮助我们封装请求头和请求体。http规定好的格式。

服务器响应:服务器接收客户端的请求头请求体后

HTTP1.0 和 HTTP1.1 的区别

1.缓存处理,在 HTTP1.0 中主要使用 header 里的 If-Modified-Since,Expires 来做为缓存判断的标准,HTTP1.1 则引入了更多的缓存控制策略例如 Entity tag,If-Unmodified-Since, If-Match, If-None-Match 等更多可供选择的缓存头来控制缓存策略。

2.带宽优化及网络连接的使用,HTTP1.0 中,存在一些浪费带宽的现象,例如客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1 则在请求头引入了 range 头域,它允许只请求资源的某个部分,即返回码是 206(Partial Content),这样就方便了开发者自由的选择以便于充分利用带宽和连接。

3.错误通知的管理,在 HTTP1.1 中新增了 24 个错误状态响应码,如 409(Conflict)表示请求的资源与资源的当前状态发生冲突;410(Gone)表示服务器上的某个资源被永久性的删除。

4.Host 头处理,在 HTTP1.0 中认为每台服务器都绑定一个唯一的 IP 地址,因此,请求消息中的 URL 并没有传递主机名(hostname)。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机(Multi-homed Web Servers),并且它们共享一个 IP 地址。HTTP1.1 的请求消息和响应消息都应支持 Host 头域,且请求消息中如果没有 Host 头域会报告一个错误(400 Bad Request)。

5.长连接,HTTP 1.1 支持长连接(PersistentConnection)和请求的流水线(Pipelining)处理,在一个 TCP 连接上可以传送多个 HTTP 请求和响应,减少了建立和关闭连接的消耗和延迟,在 HTTP1.1 中默认开启 Connection: keep-alive,一定程度上弥补了 HTTP1.0 每次请求都要创建连接的缺点。

http2.0

使用了多路复用技术,做到同一个连接并发处理多个请求,而且并发请求的数量比http1.1打了搞几个数量级。

当然 HTTP1.1 也可以多建立几个 TCP 连接,来支持处理更多并发的请求,但是创建 TCP 连接本身也是有开销的。

TCP 连接有一个预热和保护的过程,先检查数据是否传送成功,一旦成功过,则慢慢加大传输速度。因此对应瞬时并发的连接,服务器的响应就会变慢。所以最好能使用一个建立好的连接,并且这个连接可以支持瞬时并发的请求。

但由于在信息的封装上还不够成熟,技术成本比较高,已受到攻击,目前普及度不高。

四次挥手:

(1)第一次:主动方发送断开连接请求(Fin报文)给被动方,仅仅代表主动方不会再发送数据报文,但主动发可以接受数据报文。

(2)第二次:被动方此时有可能还有数据报文发送,因此需要先发送ack报文,告诉主动方“我知道了你想断开”。这样主动方就不会因为没收到应答而继续发送断开连难解的请求(fin报文)。

(3)第三次:被动发发送完数据报文后,便发送给主动方fin报文,这样保证数据通信正常可靠地完成,发送完fin报文后,被动方进入last_ack阶段(超时等待)

(4)第四次:主动发发送ack报文,进行连接中断确认,这样被动方释放连接,进入可用状态。

三次握手:

(1)第一次握手,客户端发送syn包(SYN=1,seq=x)到服务器,并进入syn_send状态,等待服务器确认。

(2)第二次握手,服务器确认客服端的包,同时自己也发一个syn包,(SYN=1,seq=y,ACK=1,ack=x+1),进入syn_recv状态。

(3)第三次握手,客户端收到服务器syn+ack包,向服务器发送确认包(ACK=1,ack=y+1),发送完毕后。客户端和服务器进入established状态,完成三次握手。

TCP和UDP的区别:

1.udp是无连接的,不需要建立连接

2.tcp保证数据正确性,udp可能丢包,tcp保证数据顺序,udp不保证,也就是说通过tcp连接传送的数据,无差错,不丢失,不重复,且按序到达,udp尽最大努力交付。tcp通过校验和,重传控制,序号标识,滑动窗口,确认应答实现可靠传输。如果丢时的重发控制,还可以对次序乱掉的分包进行顺序控制。

3.udp具有较好的实时性,工作效率比tcp高,适用于对高速传输和实时性有较高的通信和广播通信。

4.每一条tcp连接只能是点对点的,udp支持一对一、多对一、一对多和多对多的交互通信。

5.tcp对系统资源要求较多,udp对系统资源要求较少。

TCP协议:

流量控制(滑动窗口协议):

TCP流量控制主要使用滑动窗口协议,滑动窗口是接受数据端使用的窗口大小,用来告诉发送端接收端的缓存大小,以此可以控制发送端发送数据的大小,从而达到流量控制的目的。这个窗口大小就是我们一次传输几个数据。对所有数据帧按顺序赋予编号,发送方在发送过程中始终保持着一个发送窗口,只有落在发送窗口内的帧才允许被发送;

同时接收方也维持着一个接收窗口,只有落在接收窗口内的帧才允许接收。这样通过调整发送方窗口和接收方窗口的大小可以实现流量控制。

拥塞控制:慢启动,拥塞避免,快速重传,超时重传

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值