J2EE社区
苟有恒,何必三更起五更眠;
最无益,只怕一日曝十日寒.
posts - 241, comments - 318, trackbacks - 0, articles - 16
导航
首页
新随笔
联系
聚合
管理
留言簿
(30)
给我留言
查看公开留言
查看私人留言
随笔分类
(219)
Ajax(9)
CSS(3)
Database(26)
Dojo
Dwr(2)
ExtJs
Flex(1)
Hibernate(8)
iBatis(1)
JAVA(45)
Javascript(49)
JavaScript高级程序设计(第2版)(8)
JQuery(4)
Jsp,Servlet(2)
Phone(1)
review(10)
SOA(2)
Spring(5)
struts(3)
struts2(14)
svn(4)
杂乱无章(22)
友情链接
J2EE开发爱好者
搜索
积分与排名
积分 - 1163176
排名 - 25
最新随笔
1. Nginx 配置文件详解
2. 解决ajax跨域访问问题
3. 同一服务器 应用的Session冲突
4. jms activemq完整实例
5. Jfinal实例-北京丰帆佳宇运输有限公司
6. 2014 年中国开源优秀项目获奖-Jfinal
7. 微博返回顶部
8. oracle 反向索引
9. IE6 list-style-type li的第一条不显示设置的列表类型
10. 暂放过去、着手现在、放眼未来
11. Oracle中的动态SQL
12. oracle查询所有用户表的表名、主键名称、索引、外键等
13. log4j 获取动态参数
14. ehcache实例
15. struts2和servlet的共存问题
16. test
17. MYEclipse启动应用服务 自动进入DEBUG视图
18. 关于log4j的日志文件保存位置解决方案 (转)
19. Myeclipse 安装Aptana3.2 插件
20. thinkpad t420i优化
21. 谈谈如何通过网站域名访问weblogic中的应用
22. FORALL语句、FORALL语句自动回滚
23. 使用Bulk Collect提高Oracle查询效率
24. oracle_常用系统表
25. oracle 查看用户 用户权限 用户表空间 用户默认表空间[转]
26. oracle数据恢复
27. 如何读取本地磁盘驱动器?
28. 常用 且 生僻的html标签(to me)
29. 简单东东---关闭占用指定端口的进程
30. 11个让你代码整洁的原则
最新评论
1. re: MyEclipse注册码[未登录]
22222222222
--1
2. re: struts2整合spring应用实例
action中注入不了service
--hdblocal
3. re: strtus2 批量下载 中文问题、压缩文件等 ------ 讨论struts2工作流程
评论内容较长,点击标题查看
--袁**
4. re: struts2整合spring应用实例
为什么我的是404错误
--落念
5. re: error while performing database login with the oracle driver
我没有 -Duser.language=en 这段代码
--吆是玲玲
6. re: 严重: Exception starting filter Struts2 Caught exception while loading file struts-default.xml
我额也是报这样的错误,但是我没有xerces.jar这个包,但我有xml-apis.jar这个包,我删除了,还是报同样的错误,这是什么原因?
--xian
7. re: 谈谈如何通过网站域名访问weblogic中的应用
把端口修改成80后,启动weblogic报错:不能在默认监听端口创建servcer socket
--Ace
8. re: javascript 用var和不用var声明的变量区别
方法里面全局
局部,OK?
--d
9. re: 性能大提速 MyEclipse终极优化四要点[未登录]
123
--123
10. re: struts2整合spring应用实例
根本不能运行
--合格
阅读排行榜
1. java实现简单的单点登录(197777)
2. JSON与JAVA数据的转换(117547)
3. Spring中ClassPathXmlApplicationContext类的简单使用(109018)
4. struts2整合spring应用实例(54225)
5. js刷新页面 方法大全(53726)
6. JavaScript中json对象和string对象之间的转化 (24811)
7. automation服务器不能创建对象(20517)
8. javax.servlet.ServletException: java.lang.IllegalStateException: No WebApplicationContext found: no ContextLoaderListener registered错误(17385)
9. Java堆和栈的区别 (14811)
10. 严重: Exception starting filter Struts2 Caught exception while loading file struts-default.xml(14008)
java中的Serializable接口的作用
Posted on 2008-08-12 22:53
xcp
阅读(3638)
评论(1)
编辑
收藏
所属分类:
JAVA
Object serialization的定义:
Object serialization 允许你将实现了Serializable接口的对象转换为字节序列,这些字节序列可以被完全存储以备以后重新生成原来的对象。
serialization不但可以在本机做,而且可以经由网络操作(RMI)。这个好处是很大的----因为它自动屏蔽了操作系统的差异,字节顺序(用Unix下的c开发过网络编程的人应该知道这个概念)等。比如,在Window平台生成一个对象并序列化之,然后通过网络传到一台Unix机器上,然后可以在这台Unix机器上正确地重构这个对象。
Object serialization主要用来支持2种主要的特性:
1。Java的RMI(remote method invocation).RMI允许象在本机上一样操作远程机器上的对象。当发送消息给远程对象时,就需要用到serializaiton机制来发送参数和接收返回直。
2。Java的JavaBeans. Bean的状态信息通常是在设计时配置的。Bean的状态信息必须被存起来,以便当程序运行时能恢复这些状态信息。这也需要serializaiton机制。
二。sakulagi和rollingpig说的持久化我也说一下。
我觉得你们说的应该是英文里的persistence.但是Java语言里现在只支持lightweight persistence,就是轻量级持久化,这是通过serialization机制来实现的。
persistence是指一个对象的生命周期不由程序是否执行来决定,即使是在程序终止时这个对象也存在。它把一个serializable的对象写到磁盘(本机或其他机器上的非RAM存储器),并在程序重新调用时再读取对象到通常的RAM存储器。
为什么说Java的serialization机制实现的是lightweight persistence?因为你必须显式的序列化和反序列化程序里的对象;而不是直接由一个关键词来定义一个对象是序列化的然后由系统做相应的处理。
下面是关于序列化的一个实例:
程序名称:SerializationDemo.java
程序主题:实现对象的序列化和反序列化
程序说明:该程序由实例化一个MyClass类的对象开始,该对象有三个实例变量,类型分别为String、int、double,是希望存储和恢复的信息。
代码内容
import
java.io.
*
;
public
class
SerializationDemo
{
public
static
void
main(String args[])
{
//
Object serialization
try
{
MyClass object1
=
new
MyClass(
"
Hello
"
,
-
7
,
2.7e10
);
System.out.println(
"
object1:
"
+
object1);
FileOutputStream fos
=
new
FileOutputStream(
"
serial
"
);
ObjectOutputStream oos
=
new
ObjectOutputStream(fos);
oos.writeObject(object1);
oos.flush();
oos.close();
}
catch
(Exception e)
{
System.out.println(
"
Exception during serialization:
"
+
e);
System.exit(
0
);
}
//
Object deserialization
try
{
MyClass object2;
FileInputStream fis
=
new
FileInputStream(
"
serial
"
);
ObjectInputStream ois
=
new
ObjectInputStream(fis);
object2
=
(MyClass)ois.readObject();
ois.close();
System.out.println(
"
object2:
"
+
object2);
}
catch
(Exception e)
{
System.out.println(
"
Exception during deserialization:
"
+
e);
System.exit(
0
);
}
}
}
class
MyClass
implements
Serializable
{
String s;
int
i;
double
d;
public
MyClass(String s,
int
i,
double
d)
{
this
.s
=
s;
this
.i
=
i;
this
.d
=
d;
}
public
String toString()
{
return
"
s=
"
+
s
+
"
;i=
"
+
i
+
"
;d=
"
+
d;
}
}
程序运行结果:object1和object2的实例变量是一样的,输出如下:[code:1:a55efb5f91]object1:s=Hello;i=-7;d=2.7E10
object2:s=Hello;i=-7;d=2.7E10
名称:
♪4C.ESL | .↗Evon
口号:
遇到新问题♪先要寻找一个方案乄而不是创造一个方案こ
mail:
联系我
Feedback
#
re: java中的Serializable接口的作用
回复
更多评论
2013-07-03 09:19 by
www.dsprint.cn(武汉印刷)
学习了~
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
jms activemq完整实例
Jfinal实例-北京丰帆佳宇运输有限公司
2014 年中国开源优秀项目获奖-Jfinal
log4j 获取动态参数
关于log4j的日志文件保存位置解决方案 (转)
简单东东---关闭占用指定端口的进程
window linux 自动重启tomcat
X-Java:http,session,cookie详解
Java EE和Domino系统间跨域SSO的实现
Java 实现自动监听并更新配置文件内容
Powered by:
BlogJava
Copyright © xcp