当前位置: 首页 > 图灵资讯 > 技术篇> 10道java序列化面试题(附答案)

10道java序列化面试题(附答案)

来源:图灵教育
时间:2023-04-03 15:03:43

我们学到了很多类别。java面试题,今天给大家java程序员整理的是java序列化面试题。序列化为了解决对象流读写作操作中可能出现的问题若不进行序列化,数据混乱可能存在的现象。对象序列化目的就是持久地将特定的对象写在硬盘上。下面具体来看看这个十道java序列化面试题有哪些?

1、Java序列化是什么?如何实现java序列化?

答:序列化是一种处理对象流的机制。所谓对象流,就是流化对象的内容。流化对象可以读写,也可以在网络之间传输。序列化是为了解决对象流读写操作中引起的问题。

2、如何实现java序列化

答:实现需要序列化的类别没有必要实现Serializable接口,implements Serializable只是为了标记对象可以序列化,然后使用输出流(如:FileOutputStream)构建Objectoutstream(对象流)对象,然后,使用Objectoutstream对象的writeobjectt(Object obj)方法

参数可以是obj的对象写出(即保存其状态),如果需要恢复,则使用输入流。

3、序列化可以保存(持久)对象及其状态到内存或磁盘吗?

答:Java平台允许我们在内存中创建可重用的平台java但一般情况下,只有当对象JVM这些对象只有在运行时才能存在,也就是说,这些对象的生命周期不会比较 JVM的生命周期更长。然而,在实际应用中,JVM停止运行后可能需要保存指定的对象(持久),并在未来重读保存对象。Java对象序列化可以帮助我们实现这一功能。

4、Serializable如何实现序列化

答:java只要实现了一个类别 java.io.Serializable 接口,然后它可以序列化。ObjectOutputStream和ObjectInput通过Objectttect,Stream对象进行序列化和反序列化OutputStream和ObjectInputStream序列化和反序列化对象。

5、可序列化的方法有多少?如果没有办法,可序列化界面的目的是什么?

答:可序列化Java存在于Serializalbe接口中.在io包中,它构成了Java序列化机制的核心。在Java中,它也被称为标记接口,没有任何方法。类别实现 java.io.Serializable 它将在java中序列化,并指示编译器使用 Java 序列化机制序列化这个对象。

6、一个序列化的对象可以通过网络传输吗?

答:可以通过网络传输序列化对象,因为 Java 序列化对象仍以字节的形式保留,字节可以通过网络发送。序列化对象也可以存储在磁盘或数据库中作为 Blob。

7、序列ID是什么?

答:虚拟机是否允许反序列化,不仅取决于类路径和功能代码是否一致,还取决于两类的序列化 ID 是否一致就是 privatestatic final long serialVersionUID

8、Java序列化机制的原理是什么?

答:Java序列化是将对象转换为二进制表示的字节数组,通过保存或转移这些二进制数组来实现持久性。为了实现序列化,java需要实现.io.Serializable接口。反序列化是一个与序列化相反的过程,即将二进制数组转换为对象的过程。在反序列化中,必须有原始模板来恢复对象。

9、对象序列化和对象反序列化的过程?

答:对象序列化:(1)创建对象输出流,它可以包装其他类型的输出流(eg:文件输出流);(2)通过对象输出流writeObject()将对象->字节序列。

对象反序列化的过程:(1)创建对象输入流,它可以包装其他类型的源输入流(eg:文件输入流);(2)通过对象输入流readObject()字节序列->对象。

10、静态变量的序列化?

答:对象序列化后,修改静态变量的值,然后读取序列对象,然后通过读取对象获得静态变量的值是修改后的值,而不是以前的值。序列保存对象的状态,静态变量属于类状态,因此序列不保存静态变量。

上面就是java序列化面试题的整理和总结,是java面试中调查频率最高的问题。序列化除了实现对象的持久性外,它还可以用于对象的深度克隆,所以java序列化有很多功能,无论是在职java程序员还是在职java程序员java零基础所有的小白都需要掌握java序列化知识点。