400-969-7660
首页 > IT问答库 > Java > Java基础知识点有哪些?如何快速步入Java行业?

Java基础知识点有哪些?如何快速步入Java行业?

2020-05-08 21:04:07 发布
  Java基础知识点有哪些?如何快速步入Java行业?作为目前应用最广泛的编程语言之一,Java吸引了大量的人学习加入。Java编程是一门面向对象编程语言,具有简单易用、功能强大的特点,是目前互联网行业应用最广泛的编程语言之一。下面为大家介绍一下Java相关知识点。
 

 
  1.http协议的状态码有哪些?含义是什么?
 
  200 OK 客户端请求成功
 
  301Moved Permanently(永久移除),请求的URL已移走。Response中应该包含一个 Location URL,说明资源现在所处的位置
 
  302found 重定向
 
  400Bad Request 客户端请求有语法错误,不能被服务器所理解
 
  401Unauthorized 请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
 
  403 Forbidden 服务器收到请求,但是拒绝提供服务
 
  404 Not Found 请求资源不存在,eg:输入了错误的URL
 
  500 Internal Server Error 服务器发生不可预期的错误
 
  503 Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能恢复正常
 
  2.http的请求报文组成?
 
  请求行:
 
  1、是请求方法,GET和POST是最常见的http方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。
 
  2、为请求对应的URL地址,它和报文头的Host属性组成完整的请求URL。
 
  3、是协议名称及版本号。
 
  请求头:
 
  是http的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。
 
  与缓存相关的规则信息,均包含在header中
 
  请求体:
 
  是报文体,它将一个页面表单中的组件值通过param1=value1?m2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。不但报文体可以传递请求参数,请求URL也可以通过类似于“/chapter15/user.html? param1=value1?m2=value2”的方式传递请求参数。
 
  3.一次完整的http请求是怎样的?
 
  域名解析 --> 发起TCP的3次握手 --> 建立TCP连接后发起http请求 --> 服务器响应http请求,浏览器得到html代码 --> 浏览器解析html代码,并请求html代码中的资源(如js、css、图片等) --> 浏览器对页面进行渲染呈现给用户
 
  4.Tcp和Udp的区别?
 
  1、基于连接与无连接;
 
  2、对系统资源的要求(TCP较多,UDP少);
 
  3、UDP程序结构较简单;
 
  4、流模式与数据报模式 ;
 
  5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
 
  6.TCP的三次握手与四次挥手
 
  第一次握手:建立连接时,客户端发送syn包(syn=x)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
 
  第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;
 
  第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
 
  7.为什么连接的时候是三次握手,关闭的时候却是四次握手?
 
  因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。但是关闭连接时,当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。
 
  8.如果已经建立了连接,但是客户端突然出现故障了怎么办?
 
  TCP还设有一个保活计时器,显然,客户端如果出现故障,服务器不能一直等下去,白白浪费资源。服务器每收到一次客户端的请求后都会重新复位这个计时器,时间通常是设置为2小时,若两小时还没有收到客户端的任何数据,服务器就会发送一个探测报文段,以后每隔75秒钟发送一次。若一连发送10个探测报文仍然没反应,服务器就认为客户端出了故障,接着就关闭连接。
 
  9.http中重定向和请求转发的区别?
 
  本质区别:转发是服务器行为,重定向是客户端行为。
 
  重定向特点:两次请求,浏览器地址发生变化,可以访问自己web之外的资源,传输的数据会丢失。
 
  请求转发特点:一次强求,浏览器地址不变,访问的是自己本身的web资源,传输的数据不会丢失。
 
  10.GET和POST的区别?
 
  1、GET请求的数据会附在URL之后(就是把数据放置在http协议头中),以?分割URL和传输数据,参数之间以&相连,如:login.action?name=zhagnsan&password=123456。POST 把提交的数据则放置在是http包的包体中。
 
  2、GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传较大量的数据。其实这样说是错误的,不准确的:“GET方式提交的数据最多只能是1024字节",因为 GET 是通过URL提交数据,那么GET可提交的数据量就跟URL的长度有直接关系了。而实际上,URL不存在参数上限的问题,http协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制是2083字节(2K+35)。对于其他浏览器,如Netscape、FireFox等,理论上没有长度限制,其限制取决于操作系统的支持。
 
  3、POST的安全性要比GET的安全性高。注意:这里所说的安全性和上面 GET 提到的“安全”不是同个概念。上面“安全”的含义仅仅是不作数据修改,而这里安全的含义是真正的 Security的含义,比如:通过GET 提交数据,用户名和密码将明文出现在URL上,因为登录页面有可能被浏览器缓存,其他人查看浏览器的历史纪录,那么别人就可以拿到你的账号和密码了,除此之外,使用 GET 提交数据还可能会造成Cross-site request forgery攻击。
 
  4、Get 是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求,在FORM(表单)中,Method默认为"GET",实质上GET和POST只是发送机制不同,并不是一个取一个发。
 
  如果你想了解更多了解Java基础知识点,想快速入行Java行业,为了能够实现快速就业、同时也是出于对高薪的追求,可以选择专业学习一下。
上一篇 : Java人员要具备哪些技能?招聘需求包括什么?
下一篇 : 学Java真有那么好吗?Java工程师待遇怎么样?

在线预约 立享免费试学资格

姓      名 :
联系方式 :
试学课程 :