您当前位置:设计在线网 >> JavaScript >> 浏览文章

Java编程基础之注解Annotation

分享到:
本文章讲述了Java编程基础之注解Annotation.

  对

于对象的序列化可能很多初学者不熟悉,希望通过这篇文章你对对象的序列化有一个大概的了解。
  对象序列化指的是将对象转换为字节流保存起来,并在日后还原这个对象。
  可能我们认为这个有什么用处啊。这个可以将我们的对象保存在存储设备上,并且可以永久的保存。另外我们有时候需要在网络上传输一个对象,这个也是将对象序列化之后通过网络发送出去,然后再通过反序列化,还原成为原来的对象。
  一个对象要想能够实现序列化,必须实现Serializable接口或Externalizable接口。
  Serializable我们可以通过查看Java API发现这个接口没有任何方法,所以这个接口就是一个标识接口,实现这个接口就是为了告诉jvm这个类的对象可以序列化。
  我们可以利用Java给我们提供ObjectOutputStream和ObjectInputStream这两个类实现对象的序列化和反序列化。

下面看一个例子:  //aaaa:25:3000.5  bbbb:24:3200.4  上面的程序中我们定义了一个带参数的方法,那么我们就会想在对象反序列化的时候,会去调用构造方法,构建对象吗?答案是不会去调用对象的构造方法,而是根据序列化的数据直接生成对象。

  不是对象的所有的东西都可以序列化的。  当一个对象被序列化时,只保存对象的非静态成员变量,不能保存任何的成员方法和静态的成员变量。如果一个对象的成员变量是一个对象,那么这个对象的数据成员也会被保存。如果一个可序列化的对象包含对某个不可序列化的对象的引用,那么整个序列化操作将会失败,并且会抛出一个NotSerializableException.我们可以将这个引用标记为transient,那么对象仍然可以序列化。

  我们仔细看刚才的代码我们在我们创建的线程前面加上了transient说明线程对象是不序列化的。

  有时候我们需要对一些数据进行加密然后再序列化,然后反序列化的时候在调用相应的方法解密,这时候我们可以调用两个方法writeObject和readObject.这两个方法可以按照我们的自己需要的方法和顺序,去序列化对象,然后再反序列化。下面的例子是修改了上面的例子中的一点东西,看完了你就知道这两个方法怎么用了:  //Write Object  Write Object  Read Object  aaaa:25:0.0  Read Object  bbbb:24:0.0从结果中我们可以看出在我们序列化和反序列化的时候调用了我们自己写的方法。
 

推荐阅读:
iBatis介绍 基于iBatis的通用持久层对象
JAVA实现一个登录窗体功能程序讲解
关于Java编程的中文问题的几条注意原则

相关文章:

推荐文章  
赞助商链接  
热门排行  
主题推广  
中国设计在线网 All Rights Reserved. 互联网违法和不良信息举报
信息产业部备案号:湘ICP备09001063号