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序列化知识点。