程序员社区

(Java基础面试题)什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。

•序列化:序列化是将对象转化为字节流。

•反序列化:反序列化是将字节流转化为对象。

我们有时候将一个java对象变成字节流的形式传出去或者从一个字节流中恢复成一个java对象,例如,要将java对象存储到硬盘或者传送给网络上的其他计算机,这个过程我们可以自己写代码去把一个java对象变成某个格式的字节流再传输。

但是,jre本身就提供了这种支持,我们可以调用OutputStreamwriteObject方法来做,如果要让java帮我们做,要被传输的对象必须实现serializable接口,这样,javac编译时就会进行特殊处理,编译的类才可以被writeObject方法操作,这就是所谓的序列化。需要被序列化的类必须实现Serializable接口,该接口是一个mini接口,其中没有需要实现方法,implements Serializable只是为了标注该对象是可被序列化的。

例如,在web开发中,如果对象被保存在了Session中,tomcat在重启时要把Session对象序列化到硬盘,这个对象就必须实现Serializable接口。如果对象要经过分布式系统进行网络传输,被传输的对象就必须实现Serializable接口。

Java面试题

赞(0) 打赏
未经允许不得转载:IDEA激活码 » (Java基础面试题)什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。

一个分享Java & Python知识的社区