Serializable 序列化 The byte stream created is platform independent. So, the object serialized on one platform can be deserialized on a different platform.
Java 序列化接口Serializable详解 - 火星猿类 - 博客园 http://www.cnblogs.com/tomtiantao/p/6866083.html
深入理解JAVA序列化 - 简单爱_wxg - 博客园 https://www.cnblogs.com/wxgblogs/p/5849951.html
一个对象序列化的接口,一个类只有实现了Serializable搜索接口,它的对象才是可序列化的。因此如果要序列化某些类的对象,这些类就必须实现Serializable接口。而实际上,Serializable是一个空接口,没有什么具体内容,它的目的只是简单的标识一个类的对象可以被序列化。
什么情况下需要序列化?
a)当你想把的内存中的对象写入到硬盘的时候;
b)当你想用套接字在网络上传送对象的时候;
c)当你想通过RMI传输对象的时候;
具体解释:
a)比如说你的内存不够用了,那计算机就要将内存里面的一部分对象暂时的保存到硬盘中,等到要用的时候再读入到内存中,硬盘的那部分存储空间就是所谓的虚拟内存。在比如过你要将某个特定的对象保存到文件中,我隔几天在把它拿出来用,那么这时候就要实现Serializable接口;
b)在进行java的Socket编程的时候,你有时候可能要传输某一类的对象,那么也就要实现Serializable接口;最常见的你传输一个字符串,它是JDK里面的类,也实现了Serializable接口,所以可以在网络上传输。
c)如果要通过远程的方法调用(RMI)去调用一个远程对象的方法,如在计算机A中调用另一台计算机B的对象的方法,那么你需要通过JNDI服务获取计算机B目标对象的引用,将对象从B传送到A,就需要实现序列化接口。
jdk工具生成了序列化id
[root@hadoop1 MyBgJavaLan]# ll -as /usr/local/jdk1..0_144/bin
总用量
drwxr-xr-x. 7月 .
drwxr-xr-x. 7月 ..
-rwxr-xr-x. 7月 appletviewer
lrwxrwxrwx. 7月 ControlPanel -> jcontrol
-rwxr-xr-x. 7月 extcheck
-rwxr-xr-x. 7月 idlj
-rwxr-xr-x. 7月 jar
-rwxr-xr-x. 7月 jarsigner
-rwxr-xr-x. 7月 java
-rwxr-xr-x. 7月 javac
-rwxr-xr-x. 7月 javadoc
-rwxr-xr-x. 6月 javafxpackager
-rwxr-xr-x. 7月 javah
-rwxr-xr-x. 7月 javap
-rwxr-xr-x. 6月 javapackager
-rwxr-xr-x. 7月 java-rmi.cgi
-rwxr-xr-x. 7月 javaws
-rwxr-xr-x. 7月 jcmd
-rwxr-xr-x. 7月 jconsole
-rwxr-xr-x. 7月 jcontrol
-rwxr-xr-x. 7月 jdb
-rwxr-xr-x. 7月 jdeps
-rwxr-xr-x. 7月 jhat
-rwxr-xr-x. 7月 jinfo
-rwxr-xr-x. 7月 jjs
-rwxr-xr-x. 7月 jmap
-rwxr-xr-x. 11月 jmc
-rwxr-xr-x. 11月 jmc.ini
-rwxr-xr-x. 7月 jps
-rwxr-xr-x. 7月 jrunscript
-rwxr-xr-x. 7月 jsadebugd
-rwxr-xr-x. 7月 jstack
-rwxr-xr-x. 7月 jstat
-rwxr-xr-x. 7月 jstatd
-rwxr-xr-x. 1月 jvisualvm
-rwxr-xr-x. 7月 keytool
-rwxr-xr-x. 7月 native2ascii
-rwxr-xr-x. 7月 orbd
-rwxr-xr-x. 7月 pack200
-rwxr-xr-x. 7月 policytool
-rwxr-xr-x. 7月 rmic
-rwxr-xr-x. 7月 rmid
-rwxr-xr-x. 7月 rmiregistry
-rwxr-xr-x. 7月 schemagen
-rwxr-xr-x. 7月 serialver
-rwxr-xr-x. 7月 servertool
-rwxr-xr-x. 7月 tnameserv
-rwxr-xr-x. 7月 unpack200
-rwxr-xr-x. 7月 wsgen
-rwxr-xr-x. 7月 wsimport
-rwxr-xr-x. 7月 xjc
[root@hadoop1 MyBgJavaLan]# pwd
/home/MyBgJavaLan
[root@hadoop1 MyBgJavaLan]# serialver
用法: serialver [-classpath 类路径] [-show] [类名称...]
[root@hadoop1 MyBgJavaLan]#
Serialization and Deserialization in Java with Example - GeeksforGeeks https://www.geeksforgeeks.org/serialization-in-java/
The byte stream created is platform independent. So, the object serialized on one platform can be deserialized on a different platform.
package com.mycom; import java.io.Serializable;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.IOException;
import java.io.FileInputStream;
import java.io.ObjectInputStream; public class SerializationDemo implements Serializable {
public int a;
public String b; //Default constructor
public SerializationDemo(int a, String b) {
this.a = a;
this.b = b;
}
} class SerializationTest {
public static void main(String[] args) {
SerializationDemo object = new SerializationDemo(1, "geeksforgeeks");
String filename = "file.ser"; //Serialization
try {
//Saving of object in a file
FileOutputStream file = new FileOutputStream(filename);
ObjectOutputStream out = new ObjectOutputStream(file); //Method for serialization of object
out.writeObject(object); out.close();
file.close();
System.out.println("Object has been serialized");
} catch (IOException ex) {
System.out.println(ex);
} SerializationDemo object1 = null;
//Deserialization
try {
//Reading the object from a file
FileInputStream file = new FileInputStream(filename);
ObjectInputStream in = new ObjectInputStream(file); //Method for deserialization of object
object1 = (SerializationDemo) in.readObject(); in.close();
file.close();
System.out.println("Object has been deserialized");
System.out.println("a= " + object1.a);
System.out.println("b= " + object1.b);
} catch (IOException ex) {
System.out.println(ex);
} catch (ClassNotFoundException ex) {
System.out.println(ex);
}
}
}
Serializable 序列化 The byte stream created is platform independent. So, the object serialized on one platform can be deserialized on a different platform.的更多相关文章
- 【转】C#中Serializable序列化实例详解
这篇文章主要介绍了C#中Serializable序列化,以实例形式详细讲述了系列化的技术及各种序列化方法,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了C#中Serializable序列化.分 ...
- Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释
遇到这个 Java Serializable 序列化这个接口,我们可能会有如下的问题a,什么叫序列化和反序列化b,作用.为啥要实现这个 Serializable 接口,也就是为啥要序列化c,seria ...
- [转]Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释
原文地址:https://blog.csdn.net/qq_27093465/article/details/78544505 遇到这个 Java Serializable 序列化这个接口,我们可能会 ...
- BufferHelp byte[] Stream string FileStream Image Bitmap
/******* * *** ***** ** ** * * * * * * * * ***** * * * * * * * * * * * * * * * ******* *** * ***** * ...
- Serializable序列化对象
Serializable序列化对象发送: Intent intent = new Intent(); intent.setClass(mContext, HomeDetailReportActivit ...
- java.io.Serializable 序列化问题
java.io.Serializable 序列化问题 Person.java package a.b.c; public class Person implements java.io.Seriali ...
- java.io.Serializable 序列化问题【原】
java.io.Serializable 序列化问题 Person.java package a.b.c; public class Person implements java.io.Seriali ...
- 【.Net】Byte,Stream,File的转换
引言 文件的传输和读写通常都离不开Byte,Stream,File这个类,这里我简单封装一下,方便使用. 帮助类 public static class FileHelper { / ...
- IntelliJ IDEA生成 Serializable 序列化 UID 的快捷键
首先创建一个类如Movie,让该类实现Serializable序列化接口. 然后我们需要依次按照以下的方法找到 Settings 之后我们需要以下几个操作,并找到 Serializable class ...
随机推荐
- spring配置mybatis3
mybatis官方网站:http://www.mybatis.org/mybatis-3/zh/configuration.html <!--第一步:加载配置数据库相关参数--> < ...
- 跟着xiaoxin巨巨做cf
cf 385 C. Bear and Prime Numbers 题目大意:有一个数列{xi},每次给出一个询问[l, r],即问 S(l ,r)是l和r之间的素数,f(p)表示数列{xi}中整除p的 ...
- 刷题总结——分糖果(bzoj2330)
题目: Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖 ...
- 【jquery创建元素添加元素】
使用jquery创建新元素的方法为:$(html标签),例如 $("<p></p>")创建了一个段落.注意此时只是创建了对象,尚未添加到文档节点中去:以下四 ...
- uva 11995 判别数据类型
Problem I I Can Guess the Data Structure! There is a bag-like data structure, supporting two operati ...
- Tengine的concat模块与js、css合并
首先,先走出一个误区 ,下面是tengine-cn邮件列表里的一篇邮件原文:“看了这个例子就了解了,这个所谓的合并请求只是把所有的CSS或JAVASCRIPT请求合并,必须是同一个文件类型的.我开始想 ...
- PHP html_entity_decode() 函数
html_entity_decode(string,flags,character-set) 把 HTML 实体转换为字符. html_entity_decode() 函数是 htmlentities ...
- itext A4纸张横向创建PDF
import java.awt.Color;import java.io.FileOutputStream;import java.io.IOException; import com.lowagie ...
- Docker如何部署Python项目
Docker 部署Python项目 作者:白宁超 2019年5月24日09:09:00 导读: 软件开发最大的麻烦事之一就是环境配置,操作系统设置,各种库和组件的安装.只有它们都正确,软件才能运行.如 ...
- webstorm(三):webstorm的一些waring提示
一.Attribute key is not allowed here 二.Comparison this.loginType != 'username' may cause unexpected t ...