「java序列化map」java序列化原理

博主:adminadmin 2022-11-23 01:49:04 170

本篇文章给大家谈谈java序列化map,以及java序列化原理对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java.io.serializable中可以定义map吗

听我慢慢道来

 类通过实现java.io.Serializable接口可以启用其序列化功能。未实现次接口的类无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。

Java的"对象序列化"能让你将一个实现了Serializable接口的对象转换成byte流,这样日后要用这个对象时候,你就能把这些byte数据恢复出来,并据此重新构建那个对象了。

 在序列化时,有几点要注意的:

1:当一个对象被序列化时,只保存对象的非静态成员变量(包括声明为private的变量),不能保存任何的成员方法和静态的成员变量。

2:如果一个对象的成员变量是一个对象,那么这个对象的数据成员也会被序列化。

3:如果一个可序列化的对象包含对某个不可序列化的对象的引用,那么整个序列化操作将会失败,并且会抛出一个NotSerializableException。我们可以将这个引用标记为transient,那么对象仍然可以序列化。

那么回来题主的问题, java.io.serializable中可以定义map吗?

这个要视 map的实现类而定

如果实现了是 java.util.HashMap  是可以的,因为他实现了 java.io.Serializable 接口

java map比较好的序列化方式

序列化就是把内存中的对象转换成字节序列以便于存储到磁盘(持久化)和网络传输。

反序列化就是将字节序列或者是持久化的数据转换成内存中的对象。

内存中的对象只能本地进程使用,断掉后就消失了,也不能被发送到网络上的另一台机器,序列化可以将内存中的对象发送到远程机器。由于Java本身的序列化框架(Serializable)太重,序列化的对象包含了很多额外信息,不便于在网络中高效传输,Hadoop开发了自己的序列化机制(Writable)。

实现自定义bean对象的序列化

java中map集合反序列化

out.writeInt(num2);

//这最好,再添加一个goods数量的整数

out.writeObject(goods);

按上面的顺序,使用 ObjectInputStream反过来逐个读就是了

~

~

~

关于java序列化map和java序列化原理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。