Java Serialization transient
1. 什么是Serialization?
串行化(Serialization)是计算机科学中的一个概念,它是指将对象存储到介质(如文件、内在缓冲区等)中或是以二进制方式通过网络传输。之后 可以通过反串行化从这些连续的位数据重新构建一个与原始对象状态相同的对象,因此在特定情况下也可以说是得到一个副本,但并不是所有情况都这样。
Java有Serialization API为开发者提供了一种标准的机制来串行化类。
2. 为什么要Serilzation?
特别地,串行化主要有三种用途:
1)作为一种持久化机制
如果使用的是FileOutputStream流的方式,则数据将被自动地写入文件中,
2)作为一种复制机制
如果使用的是ByteArrayOutputStream流的方式,数据将写入内存中的字节数组中。该字节数组可以用来创建初始对象的副本,
3)作为一种通信机制
如果是使用套接字(Socket)流的方式,则数据自动地通过网络连接传输一另一个端点,并由这个端点上的程序来决定做什么。
3. Serialization的基本用法:默认机制
将要串行化的类必须实现java.io.Serializable接口,或者是继承实现了该接口的类。然后通过java.io.ObjectOutputStream类来实现持久化,如果用保存到文件上还需要用到java.io.FileOutputStream类。因为ObjectOutputStream被认为是java.io包中的高级类所以可用它来包装低级的类FileOutputStream。在持久化过程中调用的一个方法是ObjectOutputStream对象的writeObject(obj)方法。
当要从文件中恢复对象时,则是使用java.io.OjbectInputStream与FileInputStream类,调用一方法是ObjectInputStream对象的readObject()方法。
示例1:
/*定义一个实现了Serializable接口的类:Cat*/
import java.io.*;
public class Cat implements Serializable {
private String name;
public Cat () {
this.name = "new cat";
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
}
/*将Cat类的对象串行化与反串行化*/
import java.io.*;
public class CatDemo {
public st
相关文档:
我们为什么要去面试 ? 面试的目的是什么 ?
面试要解决哪几个问题 ?
一、面试的目的
二、面试前的准备
三、面试常见问题解答
A、项目经理常见问题
B ......
Java语言的26个细节[转载]
Java作为一门优秀的面向对象的程序设计语言,正在被越来越多的人使用。本文试图列出作者在实际开发中碰到的一些Java语言的容易被人忽视的细节,希望能给正在学习Java语言的人有所帮助。
1,位移运算越界怎么处理
考察下面的代码输出结果是多少?
int a=5;
......
xml文件如下 配置功能开关
<Configurations>
<Samples>true</Samples>
<Excepts>true</Excepts>
<CheckFace>false</CheckFace>
<ThumbNail>false</ThumbNail>
&nbs ......
现在用linux的朋友越来越多了,前几天就有两个朋友问我linux下怎么配置java环境,我想还有很多朋友想了解学习这方面的东西,就写一个完全一点的linux java环境配置吧,希望对大家有帮助。
一. 下载jdk5.0 for linux
到sun的主页 http://java.sun.com/j2se/1.5.0/download.jsp 下载jdk安装文件jdk-1_5_0_05-linux-i586 ......
全本《数据库开发这点事-Java快速入门》免费下载
来自:http://zyt.howwe.net/me.php?320
目录:http://zyt.howwe.net/ok.php?321
内容简介
针对Java初学者及入门者,系统阐述Web开发基本知识,结合数据库的快速应用,使读者快速跨入Java领域,对编程语言不再畏惧。该书作为《从人生需要引导论Java快速开发 ......