当前位置:首页 » 服务器技术
开发技术指南» 文章正文
    引言: 首先要了解Java默认的序列化行为,java将一切关于对象的信息都保存了下了,也就是说,有些时候那些不需要保存的也被保存了下来。
 

 

 ·j2se中的序列化详解(一)    »显示摘要«
    摘要:java中处处体现着简单的程序设计风格,序列化作为最常用的功能之一,在java中的设计尤为“简单”。在objectinputstream 和objectoutputstream的帮助下,我们可以轻松的实现序列化。 只要我们的class 实现了java.io.serializable接口,就可以利用objectoutputstream的writeobject()方法将一个对象序列化;利用object......
 ·j2se1.5注释语法简介    »显示摘要«
    摘要:说起注解语法,对于任何一个java开发人员来说都已经耳熟能详了,我们每天都在使用着 @author, @param,等等编写注释,然后用javadoc生成文档。java的这种方便的文档生成方法受到了开发者的普遍赞誉。而从jdk1.5开始,注释语法提供了更为强大的功能。 我们先谈谈注释语法本身,它有时候也称为meta-data :“描述数据的数据”。一般来说它们可以被用来生成文档,检查代码间依赖关系......


J2SE中的序列化详解(三)(1)

首先要了解java默认的序列化行为,java将一切关于对象的信息都保存了下了,也就是说,有些时候那些不需要保存的也被保存了下来.一般情况下,我们仅仅需要保存逻辑数据就可以了.不需要保存的数据我们可以用关键字transient标出.

import java.io.*; 【程序编程相关:Oracle10g中新型层次查询选项简介

以下是一个例子: 【推荐阅读:Oracle10g的SQL正则表达式支持

 int company_id; 【扩展信息:Oracle10g中新的多重集运算符解析

public class serial implements serializable {

 string company_addr;

 transient boolean company_flag;

}

则company_flag字段将不会参与序列化与反序列化,但同时你也增加了为他初始值的责任.这也是序列化常常导致的问题之一.因为序列化相当于一个只接受数据流的public构造函数,这种对象构造方法是语言之外的.但他仍然是一种形式上的构造函数.如若你的类不能够通过其他方面来保证初始化,则你需要额外的提供readobject方法,首先正常的反序列化,然后对transient标示的字段进行初始化.

在不适合的时候,使用java默认的序列化行为可能会带来速度上的影响,最糟糕的情况是,可能导致溢出.在某些数据结构的实现中,经常会充斥着各种的循环引用,而java的默认序列化行为,并不了解你的对象结构,其结果就是java试图通过一种昂贵的“图遍历”来保存对象状态.可想而知,不但慢而且可能溢出.这时候你就要提供自己的readobject,来代替默认的行为.

兼容性问题

兼容性历来是复杂而麻烦的问题.

不要兼容性:

首先来看看如果我们的目的是不要兼容性,应该注意哪些.不要兼容性的场合很多,比如war3每当版本升级就不能够读取以前的replays.
...   下一页
    摘要:j2se1.5也被称为j2se5.0,在5.0以前的代理服务器设置挺不友好,现在,5.0提供了对通过代理服务器的更加灵活的控制,它可以对http,https,ftp,socks等分别设置,而且还可以设置不需要通过代理服务器的主机和地址。这和我们在ie、firefox中设置代理服务器类似。1.你可以在通过java -dxxxx=yyyy方式在程序启动时设置,你也可以在程序中将设置放入系统属性中,你也......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE