易截截图软件、单文件、免安装、纯绿色、仅160KB

关于Java对象序列化您不知道的5件事

文章出处: http://java.chinaitlab.com/base/807715.html
Java对象序列化是JDK1.1中引入的一组开创性特性之一,之前51CTO也曾介绍过Java序列化的机制和原理,这里我们将使用Person来发现您可能不知道的关于Java对象序列化的5件事。
  实际上,序列化的思想是“冻结”对象状态,传输对象状态(写到磁盘、通过网络传输等等),然后“解冻”状态,重新获得可用的Java对象。所有这些事情的发生有点像是魔术,这要归功于ObjectInputStream/ObjectOutputStream类、完全保真的元数据以及程序员愿意用Serializable标识接口标记他们的类,从而“参与”这个过程。清单1显示一个实现Serializable的Person类。
  1.清单1.SerializablePerson
  2.packagecom.tedneward;
  3.
  4.publicclassPerson
  5.implementsjava.io.Serializable
  6.{
  7.publicPerson(Stringfn,Stringln,inta)
  8.{
  9.this.firstName=fn;this.lastName=ln;this.age=a;
  10.}
  11.
  12.publicStringgetFirstName(){returnfirstName;}
  13.publicStringgetLastName(){returnlastName;}
  14.publicintgetAge(){returnage;}
  15.publicPersongetSpouse(){returnspouse;}
  16.
  17.publicvoidsetFirstName(Stringvalue){firstName=value;}
  18.publicvoidsetLastName(Stringvalue){lastName=value;}
  19.publicvoidsetAge(intvalue){age=value;}
  20.publicvoidsetSpouse(Personvalue){spouse=value;}
  21.
  22.publicStringtoString()
  23.{
  24.return"[Person:firstName="+firstName+
  25."lastName="+lastName+
  26."age="+age+
  27."spouse="+spouse.getFirstName()+
  28."]";
  29.}
  30.
  31.privateStringfirstName;
  32.privateStringlastName;
  33.privateintage;
  34.privatePersonspouse;
  35.
  36.}
  将Person序列化后,很容易将对象状态写到磁盘,然后重新读出它,下面的JUnit4单元测试对此做了演示。
  37.清单2.对Person进行反序列化
  38.publicclassSerTest
  39.{
  40.@TestpublicvoidserializeToDisk()
  41.{
  42.try
  43.{
  44.com.tedneward.Personted=newcom.tedneward.Person("Ted","Neward",39);
  45.com.tedneward.Personcharl=newcom.tedne


相关文档:

Java中的==和equals区别


引言:从一个朋友的blog转过来的,里面解决了两个困扰我很久的问题。很有久旱逢甘霖的感觉。
中软国际电子政务部Jeff Chi总结,转载请说明出处。
概述:
       A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。
&nb ......

Java DB 真的很神奇


Java DB 真的很神奇啊.最早是在NetBeans里面看见有JavaDB.但是从来没有认真研究过这个东西,上个星期参加Sun 科技日了解了一些Java DB的东西决定自己去尝试,没想到真的那么简单, 2MB的一个jar放在classpath里面你就可以随时随地的使用一个完整的关系数据库.最终用户根本不用去了解他们的程序后面有一个怎么样的数据库,你可 ......

Java实现冒泡排序

自从上次写了二分法查找代码后突然打算好好学习一下数据结构.买了一本数据结构与算法......
 import java.util.Random;
/**
*
* @author leon.lee
*/
public class BubbleSort {
private int[] arrayData;
public void printArrayList(){
if (arrayData!=null){
for(int i:a ......

Java事务处理总结【JDBC事务|JTA事务|容器事务】

来源:http://hi.baidu.com/wangking/blog/item/4d28730945364aaa2eddd4a9.html
一、什么是
Java事务

通常的观念认为,事务仅与数据库相关。

事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性
(isolation)和持久性(durability)的缩写。事务的原子性表示事务 ......

Java对象的序列化和反序列化

当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个java对象转换为字节序列,即java对象序列号,才能在网络上传送;接收方则需要把字节序列再恢复为Java对象,即反序列化。
  把Java对象转换为字节序列的过程称为对象的序列化。
  ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号