Java中的Serialization机制和transient关键字

下面这两篇文章讲得特别明白,简单的说,就是Serialization机制是 指把类或者基本的数据类型持久化(persistence)到数据流(Stream)中,包括文件、字节流、网络数据流。 
JAVA中实现serialization主要靠两个类:ObjectOuputStream和ObjectInputStream。他们是JAVA IO系统里的OutputStream和InputStream的子类。既然他们是JAVA IO中的流,那么就可以像操作一般的流一样来操作他们。

Java的Serialization机制
Java的关键字transient

这里有一段详细的代码,我还添加了一点点注释便于理解:

import java.io.*; 
import java.util.*; 

public class Logon implements Serializable { 
private static final long serialVersionUID = 1L;
private Date date = new Date(); 
private String username; 
private transient String password;
Logon(String name, String pwd) { 
username = name; 
password = pwd; 
}
public String toString() { 
String pwd = (password == null) ? "(n/a)" : password; 
return "logon info: \n " + 
"username: " + username + 
"\n date: " + date.toString() + 
"\n password: " + pwd; 
}
public static void main(String[] args) { 
Logon a = new Logon("Hulk", "myLittlePony");
System.out.println( "logon a = " + a); 
try { 
ObjectOutputStream o = new ObjectOutputStream( new FileOutputStream("Logon.out")); 
o.writeObject(a); 
o.close(); 
// Delay: 
int seconds = 5; 
long t = System.currentTimeMillis() + seconds * 1000; 
while(System.currentTimeMillis() < t); 
// Now get them back: 
ObjectInputStream in = new ObjectInputStream( new FileInputStream("Logon.out")); 
System.out.println( "Recovering object at " + new Date()); 
a = (Logon)in.readObject(); 
System.out.println( "logon a = " + a); 
} catch(Exception e) { 
e.printStackTrace(); 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值