实训日记2021/6/18
一、序列化
今天在理解代码的时候看到了一串代码
public class User implements Serializable
对于其中的serializable接口比较好奇,好奇点了进去,发现是个空接口。
这其实是关于序列化的知识点,下面就记录一下关于序列化的知识点。
-
什么是Serializable接口?
这是一个对象序列化的接口,一个类只有实现了这个接口,他的对象才能够被序列化。
Serializable接口就是Java提供用来进行高效率的异地共享实例对象的机制,实现这个接口即可 -
那么序列化是什么意思呢?
序列化是将对象状态转变为可保存或传输的的格式的过程。与序列化相反的是反序列化,它将流转换为对象。这两个过程结合起来,可以轻松地存储和传输数据。 -
为什么要序列化呢
①把对象转换为字节序列的过程称为对象的序列化
②把字节序列恢复为对象的过程称为对象的反序列化 -
关于serialVersionUID
最好自己声明一个serialVersionUID变量,不然默认的变量可能会导致异常。这是用来辅助对象的序列化与反序列化的,原则上序列化后的serialVersionUID和当前类一致,反序列化才能成功。所以在序列化的时候先将serialVersionUID写入,在反序列化的时候再去检测是否一致,一致的话,反序列化成功。二、WEB-INF
看到WEB-INF目录之后,想到一直没有详细了解过它的存在意义,就百度了一下。
WEB-INF其实是java的Web应用的安全目录,只有服务端可以访问,客户端是没办法访问的。如果要在页面中访问他的文件,必须通过web.xml对要访问的文件进行映射才行