动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

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

07-23 16:47 425浏览
举报 T字号
  • 大字
  • 中字
  • 小字

前面我们学习了很多类的java面试题,今天为各位java程序员整理的是java序列化面试题。序列化为了解决对象流读写操作时可能引发的问题如果不进行序列化,可能会存在数据乱序的现象。对象的序列化目的就是将一个具体的对象进行持久化,写入到硬盘上。下面来具体看看这10道java序列化面试题都有哪些吧。

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

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

2、如何实现java序列化

答:将需要被序列化的类实现Serializable接口,该接口没有需要实现的方法,implements Serializable只是为了标注该对象是可被序列化的,然后使用一个输出流(如:FileOutputStream)来构造一个ObjectOutputStream(对象流)对象,接着,使用ObjectOutputStream对象的writeObject(Object obj)方法

就可以将参数为obj的对象写出(即保存其状态),要恢复的话则用输入流。

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

答:Java平台允许我们在内存中创建可复用的java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即这些对象的生命周期不会比 JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存(持久化)指定的对象,并在将来重新读取被保存的对象。Java对象序列化就能够帮助我们实现该功能。

4、Serializable如何实现序列化

答:java只要一个类实现了 java.io.Serializable 接口,那么它就可以被序列化。Object Out put Stream和Object Input Stream对对象进行序列化及反序列化通过Object Out put Stream和Object Input Stream对对象进行序列化及反序列化。

5、可序列化的方法有多少?如果没有方法,那么可序列化接口的用途是什么?

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

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

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

7、序列ID是什么?

答:虚拟机是否允许反序列化,不仅取决于类路径和功能代码是否一致,一个非常重要的一点是两个类的序列化 ID 是否一致就是 private static final long serialVersionUID

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

答:Java序列化就是将一个对象转化为一个二进制表示的字节数组,通过保存或则转移这些二进制数组达到持久化的目的。要实现序列化,需要实现java.io.Serializable接口。反序列化是和序列化相反的过程,就是把二进制数组转化为对象的过程。在反序列化的时候,必须有原始类的模板才能将对象还原。

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

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

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

10、静态变量的序列化?

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

上面就是java序列化面试题的一个整理与汇总了,这10道题都是序列化中java面试里考察频率最高的题目。序列化除了能够实现对象的持久化之外,还能够用于对象的深度克隆,所以java序列化的作用还是挺多的,不管是在职的java程序员还是java零基础的小白,都需要好好掌握java序列化的知识点。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵1052
程序员代码小兵1052

5篇文章贡献16789字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消