昨天晚上在网站Top看到一个朋友提到序列化,他做了很详细的剖析,我觉得很好。又因为以前大学毕业论文弄的消息中间件(JMS),刚好用到了序列化,所以把Java的序列化再给整理一下。
定义一个JavaBean 并实现Serializable接口
package org.fuzzy.bottle.bean;
import java.io.Serializable;
/**
* Created with IntelliJ IDEA.
* User: caiwm
* Date: 12-7-3
* Time: 下午10:13
* To change this template use File | Settings | File Templates.
*/
public class RemoteBean implements Serializable {
private String locateAddress;
private String remoteAddress;
private String locateImsi;
private String locateBigValue;
public String getLocateAddress() {
return locateAddress;
}
public void setLocateAddress(String locateAddress) {
this.locateAddress = locateAddress;
}
public String getRemoteAddress() {
return remoteAddress;
}
public void setRemoteAddress(String remoteAddress) {
this.remoteAddress = remoteAddress;
}
public String getLocateImsi() {
return locateImsi;
}
public void setLocateImsi(String locateImsi) {
this.locateImsi = locateImsi;
}
public String getLocateBigValue() {
return locateBigValue;
}
public void setLocateBigValue(String locateBigValue) {
this.locateBigValue = locateBigValue;
}
}
写个测试方法:
public static void main(String[] args) throws IOException {
RemoteBean remoteBean = new RemoteBean();
remoteBean.setLocateAddress("Http://www.iteye.com/holly-shite/write-page.jsp");
remoteBean.setLocateImsi("110M55876384991S");
remoteBean.setRemoteAddress("http://localhost:1111/33-july-judy.php");
FileOutputStream fos = new FileOutputStream("temp.out");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(remoteBean);
oos.flush();
oos.close();
fos.flush();
fos.close();
}
序列化,把流输出到文件中,可以看到持久化的数据如下:
-----------------------
序列化传输,对于分布式系统尤为重要。不仅效率很好,而且JavaBean的属性不会丢失。
- 大小: 83.5 KB
分享到:
相关推荐
3. commons-beanutils-1.9.3.jar:Apache Commons BeanUtils库可以帮助开发者方便地处理JavaBean属性,虽然主要不是为了序列化设计,但在某些场景下,可以配合其他库辅助序列化JavaBean。 4. commons-pool2-2.3.jar...
Java反序列化是一种将已序列化的对象状态转换回对象的过程,它是Java平台中持久化数据的一种常见方式。在Java应用程序中,序列化用于保存对象的状态以便稍后恢复,或者在网络间传输对象。然而,这个过程也可能引入...
该项目是一款基于注解的JavaBean类型数据序列化与反序列化工具,实现了动态字段及值过滤功能。适用于服务端(如Spring和Thrift)的数据处理,旨在提供灵活的序列化和反序列化机制,支持字段和值的动态过滤。项目包含...
### JavaBean 持久化 #### 知识点概览 1. **JavaBean 的概念与作用** ...通过使用序列化机制和合理管理 JavaBean 的属性,可以有效地实现 JavaBean 的持久化功能,从而提高应用程序的可用性和灵活性。
JavaBean 是一种特殊的 Java 类,它具有统一的接口格式,主要组成部分包括属性(Properties)、方法(Method)和事件(Events)。下面将详细介绍 JavaBean 的概念、组成部分、属性的介绍、JSP 中的引用、生命周期等...
1.2 JavaBean序列化/反序列化 1.2.1 步骤说明 普通JavaBean 嵌套JavaBean 1.3 数组和List的序列化/反序列化 1.3.1 数组的序列化/反序列化 1.3.2 List集合的序列化/反序列化 1.4 Set和Map的序列化/反序列化 1.4.1 Set...
同时,JavaBean默认实现了Serializable接口,可被序列化和反序列化,方便在网络间传输或持久化存储。 在描述中提到的“可直接用”,意味着这个JavaBean可能已经预设了一些常用的功能,可以直接在项目中导入和使用。...
3. **序列化**:通常,JavaBean会实现`java.io.Serializable`接口,这样它们就可以被序列化,便于持久化或跨网络传输。 4. **属性访问器和修改器**:除了基本的getter和setter,JavaBean还可能包含is方法(对于布尔...
2. **实现Serializable接口**:虽然现在大多数Java类默认实现序列化,但这个接口确保JavaBean可以被序列化,即对象状态可以保存到磁盘或在网络间传输。 3. **属性接口**:每个属性都应该有对应的getter和setter方法...
- **序列化与反序列化**:在分布式系统中,JavaBean可以通过序列化实现对象的持久化存储或在网络间传输。 - **代码生成工具**:例如Eclipse、IntelliJ IDEA等IDE,可以自动根据JavaBean生成getter和setter方法,...
JavaBean是一种特殊的Java类,它是Java编程语言中的一个核心概念,尤其在开发企业级应用程序时极为常见。JavaBean遵循特定的规范,使它们能够被其他Java应用或开发工具(如IDEs)识别、可视化和操作。JavaBean的主要...
- **序列化支持**:JavaBean可以通过实现`Serializable`接口来支持序列化,以便持久化对象状态。 2. **JavaBean在数据库操作中的应用** - **数据访问对象(DAO)模式**:JavaBean常被用于实现DAO层,提供对数据库...
在我们的`Person`类中,我们没有显式地实现这个接口,因为JavaBean默认就是可序列化的。如果自定义类没有实现`Serializable`,在尝试序列化时会抛出异常。 总结来说,本案例通过Java Socket实现了客户端和服务器...
OmniBean是一个强大的JavaBean库,它允许开发者将JavaBean对象序列化成各种不同的格式,如protocol buffer和XML。在Java编程中,JavaBean是一种符合特定规范的类,主要用于数据封装,它们通常具有公有属性、getter和...
4. **序列化**:JavaBean通常实现Serializable接口,允许对象的状态被序列化和反序列化。 5. **事件处理**:JavaBean可能支持事件监听机制,允许其他组件订阅并响应Bean的特定事件。 在Java开发中,JavaBean广泛...
对象序列化是一种用来处理对象流的机制,将对象的内容流化,能够将对象状态转换成流之后,可以将其保存到文件、管道、另一个进程、通过网络将对象发送到另一主机、或发送到Web客户端。对象序列化功能非常简单、强大...
5. **序列化支持**:如果需要持久化 JavaBean 对象,那么需要实现 Serializable 接口,以便能够被序列化和反序列化。 BDK 作为测试工具,可能提供了以下功能: 1. **属性检查**:可以检查 JavaBean 的属性值,验证 ...
序列化在很多场景下都非常有用,例如在网络通信中发送对象、持久化对象到数据库或文件、在多线程环境下保存对象状态以及实现RMI(远程方法调用)和EJB(企业级JavaBean)等高级功能。 总的来说,Java序列化是一个...
3. **序列化**:为了支持持久化或跨网络传输,JavaBean可以实现Serializable接口。 在用户管理的场景中,我们通常需要创建一个User类,这个类将包含如ID、用户名、密码、电子邮件等属性。接下来,我们将讨论如何...