博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是Java序列化?如何实现序列化?
阅读量:6337 次
发布时间:2019-06-22

本文共 1352 字,大约阅读时间需要 4 分钟。

 

 一、什么是序列化: 序列化理解成“打碎”是可以的,不过在书本上的名词就是将对象转换成二进制。    

二、在java中如何实现序列化: 首先我们要把准备要序列化类,实现 Serializabel接口 例如:我们要Person类里的name和age都序列化

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import 
java.io.Serializable; 
public 
class 
Person 
implements 
Serializable {
    
//本类可以序列化
    
private 
String name ; 
    
private 
int 
age ;
    
public 
Person(String name,
int 
age)
    
        
this
.name = name ; 
this
.age = age ;
    
    
public 
String toString()
    
{
        
return 
"姓名:" 
this
.name + 
",年龄" 
this
.age ;
    
}

 然后:我们将name和age序列化(也就是把这2个对象转为二进制,统族理解为“打碎”)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package 
org.lxh.SerDemo; 
import 
java.io.File;
import 
java.io.FileOutputStream; 
import 
java.io.ObjectOutputStream ;
public 
class 
ObjectOutputStreamDemo
{
    
//序列化 
    
public 
static 
void 
main(String[] args) 
throws 
Exception 
    
{
        
//序列化后生成指定文件路径 
        
File file = 
new 
File(
"D:" 
+ File.separator + 
"person.ser"
) ;
        
ObjectOutputStream oos = 
null 
;
        
//装饰流(流)
        
oos = 
new 
ObjectOutputStream(
new 
FileOutputStream(file)) ; 
        
//实例化类 
        
Person per = 
new 
Person(
"张三"
,
30
) ;
        
oos.writeObject(per) ;
        
//把类对象序列化
        
oos.close() ;
    
}

 序列化是将对象状态转换为可保持或传输的格式的过程。说明白点就是你可以用对象输出流输出到文件.如果不序列化输出的话.很可能会乱!

 实现方式是实现java.io.Serializable接口.这个接口不需要实现任何具体方法.只要implements java.io.Serializable 就好了

 

java中的序列化机制能够将一个实例对象(只序列化对象的属性值,而不会去序列化什么所谓的方法。)的状态信息写入到一个字节流中使其可以通过socket进行传输、或者持久化到存储数据库或文件系统中;然后在需要的时候通过字节流中的信息来重构一个相同的对象。

一般而言,要使得一个类可以序列化,只需简单实现java.io.Serializable接口即可。

 
 

转载地址:http://mexoa.baihongyu.com/

你可能感兴趣的文章
前端项目课程3 jquery1.8.3到1.11.1有了哪些新改变
查看>>
UOJ#179. 线性规划(线性规划)
查看>>
整合spring cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)
查看>>
windows的服务中的登录身份本地系统账户、本地服务账户和网络服务账户修改
查看>>
JAVA中循环删除list中元素的方法总结
查看>>
redis 安装
查看>>
SQL some any all
查看>>
电子书下载:Programming Windows Identity Foundation
查看>>
有理想的程序员必须知道的15件事
查看>>
用于测试的字符串
查看>>
财付通和支付宝资料收集
查看>>
PHPCMS V9数据库表结构分析
查看>>
理解 IEnumerable 与 IEnumerator
查看>>
NHibernate 2.0 Beta 1 Released和一些工具
查看>>
【每天一个Linux命令】12. Linux中which命令的用法
查看>>
软件接口数据一致性机制
查看>>
微服务架构介绍和RPC框架对比
查看>>
Debian下使用OpenLDAP 管理端
查看>>
泛型排序器TComparer
查看>>
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
查看>>