- 浏览: 120565 次
- 性别:
- 来自: 地球
文章分类
最新评论
-
754731046:
很适合对初学者适用,谢谢
Oracle存储过程详解 -
天明破晓:
我测试了,不好用
Java中的正则表达式验证各种电话号码 -
OracleX:
otom31 写道从来不用标签库,几乎不用struts,除了最 ...
标签库的优点、缺点大辩论 -
otom31:
从来不用标签库,几乎不用struts,除了最早公司要使用以外; ...
标签库的优点、缺点大辩论
实现Serializable借口的对象可以被转换成一系列字节,并可以在以后使用时完全恢复原来的样子。这一过程也可以在网络中进行,这样就可以先在windows机器上创建一个对象,对其序列化,然后通过网络发送给Linux机器,就可以在Linux机器上准确无误地恢复成原来的样子。整个过程不必关心数据在不同机器上如何表示,也不必关心字节的顺序或其他细节。
序列化的思想就是“冻结”对象,操作对象(写到磁盘,通过网络传输等),然后“解冻”对象,重新获得可用的Java对象。功能的实现要靠ObjectInputStream/ObjectOutputStream类,完全保真原数据,并且开发愿意用Serializable。
实现了Serializable接口的类为保证serialVersionUID 值跨不同 java 编译器实现的一致性,序列化类必须声明一个明确的 serialVersionUID 值。
ClassA.java
public class ClassA implements Serializable { private static final long serialVersionUID = 6013572251564847381L; private String name = "My name is a"; private ClassB b = null; ClassA() { b = new ClassB(); } public String show() { System.out.println("a.toString <a.name=\"" + this.name + "\" a.b.name=\"" + this.b.getName() + "\">"); return "a.toString <a.name=" + this.name + " a.b.name=" + this.b.getName() + ">"; // \" 双引号 // \' 单引号 // \\ 反斜线 } ....................... }
ClassB.java
public class ClassB implements Serializable{ private static final long serialVersionUID = -4324044767844361076L; private String name="My name is b"; ClassB(){} public String getName() { return name; } public void setName(String name) { this.name = name; } }
将对象内容保存到文本中
WriteSeri.java
public class WriteSeri { public static void main(String args[]){ ObjectOutputStream outObj=null; try { //将对象内容写入到文本中 FileOutputStream outStr=new FileOutputStream("obj.txt"); outObj=new ObjectOutputStream(outStr); ClassA a=new ClassA(); outObj.writeObject(a); System.out.println("write obj:"+a.show()); outObj.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }finally{ try { if (outObj != null) { outObj.close(); } } catch (IOException e) { e.printStackTrace(); } } } }
输出结果:
a.toString <a.name="My name is a" a.b.name="My name is b">
write obj:a.toString <a.name=My name is a a.b.name=My name is b>
将文本内容还原给对象
ReadSeri.java
public class ReadSeri { public static void main(String args[]) { ObjectInputStream inObj = null; try { FileInputStream inStr = new FileInputStream("obj.txt"); inObj = new ObjectInputStream(inStr); ClassA a = (ClassA) inObj.readObject(); System.out.println("read object:" + a.show()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { if (inObj != null) { try { inObj.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
输出结果:
a.toString <a.name="My name is a" a.b.name="My name is b">
read object:a.toString <a.name=My name is a a.b.name=My name is b>
发表评论
-
AOP的实现(JDK动态代理)
2011-11-29 16:21 975转自:http://www.blogjava.net/D ... -
短信平台总结(20111128)
2011-11-28 17:49 1web层套用公司框架,虽然struts1多少懂点了, ... -
Java 枚举7常见种用法
2011-11-27 22:54 855转自:http://helloyesyes.itey ... -
一个Java程序员应该掌握的10项技能
2011-11-18 11:57 9831、语法:必须比 ... -
Java回调函数使用
2011-08-16 16:14 689正常情况下开发人员使用已经定义好的API,这个过程叫 ... -
为什么要设置Java环境变量(详解)
2011-08-17 21:40 654从大二开始接触Java,之后是断断续续的学习。大三真正开始 ... -
很长空格的String转换成Array数组
2011-08-23 14:40 1261开发中碰到了一个需求,需要把键值对字符串分隔,但键值之 ... -
不同格式的日期字符串转换
2011-08-23 14:44 923先把字符串日期转换成对应的格式,然后再转换成日期 p ... -
JUint测试
2011-08-23 15:36 631ClassA.java public class Cla ... -
Java连接数据库方式大全
2011-08-23 15:49 822Mysql: String Driver=& ... -
解决Join方法的疑惑
2011-08-23 20:57 978很长时间对join方法感到疑惑,不明白到底是谁要阻塞,谁要继 ... -
线程学习笔记【1】----进程、线程概念及创建线程
2011-08-27 22:33 7751.进程与线程 每个进程都独享一块内存空间,一个应用程 ... -
线程学习笔记【2】---Timer(定时器)
2011-08-28 09:15 744入门 public class Time01 { ... -
线程学习笔记【3】---互斥技术
2011-08-29 15:10 722第一个示例更多的是运用了内部类的特性: 内部类重要特点:可以 ... -
线程学习笔记【4】---线程之间通信
2011-08-29 17:31 720子线程先循环10次,然后主线程循环100次,再子线程循环10次 ... -
线程学习笔记【5】--ThreadLocal应用
2011-09-05 15:31 771基本的ThreadLocal使用 public clas ... -
各种创建单例模式的优缺点
2011-09-05 21:54 793单例模式应用于一个类只有一个实例的情况,并且为其实例提供一个全 ... -
Ant学习实例
2011-09-14 22:03 7711.安装Ant 先从http://ant.apache.or ... -
各种文件注释写法
2011-09-30 15:52 1230JSP注释 在JSP中注释最好用< ... -
敲回车光标跳到下一个输入框(只能在IE中使用)
2011-10-08 10:22 1703<html> <head> & ...
相关推荐
对象的反序列化就是从输入流中读取对象。 要序列化的对象应该实现Serializable接口。 Serializable接口是一个标识接口,没有抽象方法。 Serializable有一个子接口Externalizable,实现Externalizable接口的类...
Java提供这种保存对象状态的机制,就是序列化。 对象序列化是Java编程中的必备武器 Java高级程序设计实战教程第五章-Java序列化机制全文共15页,当前为第4页。 5.2.2 序列化应用 当你想把内存中的对象状态保存到一...
Java序列化(java.io.Serializable) Hadoop序列化的特点 Hadoop的序列化格式:Writable 序列化格式特点: 紧凑:高效使用存储空间。 快速:读写数据的额外开销小 可扩展:可透明地读取老格式...
如果要保存序列化的数据并将其读入db,请使用它。 安装 cd my_cake_app/app git clone git://github.com/imsamurai/cakephp-serializable-behaviour.git Plugin/Serializable 或者,如果您使用git add作为子模块: ...
反序列化恰恰是序列化的反向操作,也就是说,把已存在在磁盘或者其他介质中的对象,反序列化(读取)到内存中,以便后续操作,而这个过程就叫做反序列化。 概括性来说序列化是指将对象实例的状态存储到存储媒体...
对象序列化就是把对象写入到输出流中,用来存储或者传输。... 对象的反序列化就是从输入流中读取对象。 要序列化的对象应该实现Serializable接口。 Serializable接口是一个标识接口,没有抽象方法。
在序列化期间,对象将其状态写入临时或持久存储区,可以通过存储区读取或者反序列化状态,重新创建该对象。 注意事项 如果一个类需要进行序列化,需要遵从Serializable 接口,得到一个序列化编号。 public class ...
主要介绍了Android 序列化的存储和读取总结及简单使用的相关资料,Serializable接口和Parcelable接口,本文对这两种方式进行简单的总结和使用,需要的朋友可以参考下
或者用[Serializable]标记(如果有父类,则父类也需要被标记;可以[NonSerialized()]标记类中不想被序列化的字段) 2 注册自定义数据格式:调用静态方法DataFormats.GetFormat() 3 保存数据到clipboard:利用...
要使一个类可序列化,最简单的方法是使用 Serializable 属性对它进行标记,如下所示: [Serializable] public class Class { } 但是也可以传递类类别。 将类的实例序列化成一个Xml文件核心代码是 ...
ObjectInputStream ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化。 ObjectInputStream.GetField 提供对从输入流读取的持久字段的访问权限。 ObjectOutputStream ...
串行化/序列化:将java对象转换成某种格式(JVM定义的)的字节数组 串行化使用场景: 将对象用户网络间传输或者是本地化储存。 反串行化:将字节数组恢复成java对象。 package com.yongjun.io; import java.io....
使用xstream序列化的类不需要实现serializable接口。xstream是一种序列 化工具而不是数据绑定工具,就是说不能从xml或者xml schema definition (xsd)文件生成类。 和其他序列化工具相比,xstream 有三个突出的特点...
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。...
描述:类是可序列化的,但是没有定义serialVersionUID; 处理方式:自动生成serialVersionUID; Field only ever set to null 描述:Field一直被设置为null; 处理方式:检查相关filed的调用情况,看所有对Field的...
序列化的方式 Serializable 和Parcelable 的区别 静态属性和静态方法是否可以被继承?是否可以被重写?以及原因? 静态内部类的设计意图 成员内部类、静态内部类、局部内部类和匿名内部类的理解,以及项目中的应用 ...
该软件包使用后端JSON或YAML实现了一个简单且可扩展的序列化协议。 目标 JSON和YAML后端。 建立在考虑前向兼容性的基础上 即使没有类定义也可以解释/读取数据 适用于配置文件编辑 简单的例子 一些例子: ~Point : ...
子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。...
例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象。在另一端,反序列化将从该流重新构造对象。 5.概述o/r mapping 的原理 利用反射,配置 将类于数据库表映射 7.用sealed修饰...