第四天:JAVA面试八股文(一.Java基础篇)

学习目标:JAVA面试八股文(一.Java基础篇)

提示:第四天开学

内容:

  • 一周掌握 Java 基础面试八股文

学习内容:

提示:作者个人的计划

如下:

  1. 什么是 java 序列化,如何实现 java 序列化
  2. Http 常见的状态码
  3. .GET 和POST 的区别
  4. Cookie 和Session 的区别

学习产出:

提示:这里展示学习的内容

  1. 什么是 java 序列化,如何实现 java 序列

序列化是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化。可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间。序列化是为了解决在对对象流进行读写操作时所引发的问题。
序 列 化 的 实 现 : 将 需 要 被 序 列 化 的 类 实 现 Serializable 接 口 , 该 接 口 没 有 需 要 实 现 的 方 法 , implements Serializable 只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用 ObjectOutputStream 对象的 writeObject(Object obj)方法就可以将参数为 obj 的对象写出(即保存其状态),要恢复的话则用输入流。

  1. Http 常见的状态码

HTTP(Hypertext Transfer Protocol)是用于在网络上传输超文本的协议。在HTTP中,每个请求和响应都会返回一个状态码,用来表示请求的处理结果。以下是一些常见的HTTP状态码及其含义:

200 OK:请求成功,服务器成功处理了请求。
201 Created:请求已成功,并在服务器上创建了新的资源。
204 No Content:服务器成功处理了请求,但没有返回任何内容。
301 Moved Permanently:请求的资源被永久移动到新的URL。
302 Found(或者使用 307 Temporary Redirect):请求的资源被临时移动到新的URL。
304 Not Modified:客户端可以使用缓存的版本,因为资源未被修改。
400 Bad Request:服务器无法理解客户端的请求,通常是由于语法错误。
401 Unauthorized:请求要求身份验证,客户端未提供有效的身份验证凭证。
403 Forbidden:服务器拒绝请求,客户端没有权限访问。
404 Not Found:服务器找不到请求的资源。
500 Internal Server Error:服务器内部错误,无法完成请求。
502 Bad Gateway:作为网关或代理的服务器从上游服务器收到无效的响应。
503 Service Unavailable:服务器当前无法处理请求,通常是由于过载或维护。
这只是一些常见的HTTP状态码,还有其他状态码可供使用。了解这些状态码可以帮助你更好地理解HTTP请求的处理结果,并进行相应的错误处理或重试机制。

  1. GET 和POST 的区别

GET 和 POST 都是HTTP协议中常用的请求方法,主要有以下的区别:

参数位置不同:GET 方法将请求参数放在 URL 后面,以 “?” 分隔,参数之间使用 “&” 连接,例如:http://example.com/path?param1=value1&param2=value2;而 POST 方法将请求参数放在请求体中,请求头中包含 Content-Type 指示请求体类型。

请求方式不同:GET 方法是一种幂等操作,也就是说多次同样的 GET 请求返回的结果应该是一致的,并不会对服务器产生影响;而 POST 方法通常用于向服务器提交数据,可能会对服务器产生更改。

安全性不同:GET 方法的请求参数暴露在 URL 中,可能会被其他人获取到,因此不适合发送敏感信息;而 POST 方法的请求参数放在请求体中,相对更加安全。

缓存处理不同:GET 方法的响应可以被缓存起来,下次请求相同的 URL 时可以直接使用缓存,从而提高了访问速度;而 POST 方法的响应则不会被缓存。

数据长度限制不同:GET 请求的数据长度受到 URL 长度的限制,因此传输的数据量较小;而 POST 请求的数据长度没有限制,可以传输大量数据。

总的来说,GET 方法适用于数据量较小、安全性要求不高和幂等性要求的请求;而 POST 方法适用于提交数据、安全性要求较高的请求。在实际应用中,我们要根据具体情况选择使用哪种请求方法。

  1. Cookie 和Session 的区别

Cookie和Session是Web开发中常用的两种会话管理方式,它们有以下区别:

存储位置不同:Cookie是存储在客户端(浏览器)中的,而Session是存储在服务器上的。

数据存储方式不同:Cookie将数据以键值对的形式存储在客户端的浏览器中,每次请求都会将Cookie发送给服务器;而Session将数据存储在服务器上,客户端只会保存一个 SessionID,通过该ID与服务器进行会话数据的交互。

安全性不同:Cookie的安全性相对较低,因为存储在客户端,可能被窃取或篡改;而Session存储在服务器上,相对更安全。

存储容量不同:Cookie的存储容量有限,一般为4KB左右;而Session的存储容量受到服务器的限制,可以存储更多的数据。

生命周期不同:Cookie可以设置过期时间,可以在客户端保存一段时间;而Session默认情况下在客户端关闭后就会过期,或者服务器设置了过期时间。

跨域支持不同:Cookie可以跨域访问,可以在不同域名下共享,但需要注意安全性问题;而Session默认情况下不支持跨域访问。

综上所述,Cookie适用于存储较小、不敏感的数据,可以在客户端进行长期保存;而Session适用于存储较大、敏感的数据,可以在服务器端进行管理和控制。在实际应用中,我们根据需求和安全性要求选择适合的会话管理方式。




接下来就是JAVA高级篇的学习

天天学习,天天成长

  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值