凡是需要被序列化的对象,均需要 直接或间接地 实现java.io.Serializable接口;
并且,该对象所持有的其他对象也需要 直接或间接地 实现java.io.Serializable接口;
否则将引起异常或不能正确地反序列化。
ArrayList也实现了序列化
public static void main(String[] args) {
// TODO Auto-generated method stub
File f=new File("d:\\user.tmp");
if(f.exists()){
f.delete();
}
ArrayList al=new ArrayList();
al.add(new classFirstload())//没有实现Serialable的类会报异常!
FileOutputStream os;
try {
os = new FileOutputStream(f);
ObjectOutputStream oos=new ObjectOutputStream(os);
oos.writeObject(al);
oos.close();
FileInputStream fi=new FileInputStream(f);
ObjectInputStream ois=new ObjectInputStream(fi);
ArrayList arraydemo=(ArrayList)ois.readObject();
System.out.println(arraydemo.get(0));
os.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//ObjectOutputStream 核心类
}
分享到:
相关推荐
在Java中,要实现序列化,对象的类需要实现`java.io.Serializable`接口。例如,`ObjectSaver.java`文件可能包含一个实现了序列化的类定义: ```java public class MySerializableObject implements Serializable { ...
ArrayList对序列化的实现有什么好处 Java对象的序列化 Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比
本主题主要探讨的是使用`XmlSerializer`对ArrayList和自定义类实例进行序列化和反序列化的操作。 首先,让我们从ArrayList的序列化开始。ArrayList是.NET框架中一种动态数组,可以存储各种类型的数据。在C#中,如果...
### 序列化之writeReplace方法应用 #### 一、序列化概述 序列化是将对象的状态信息转换为可以存储或传输的形式的过程。在Java中,如果一个对象需要支持序列化,那么它需要实现`Serializable`接口。序列化主要用于...
在“序列化与集合窗体应用”项目中,可能涵盖了如何将集合对象(如ArrayList或Dictionary)进行序列化,然后保存到文件或数据库中。这在处理大量数据时非常有用,因为可以直接读取序列化的数据,避免了重新计算或...
3. **分布式系统**:在分布式应用系统中,为了实现不同节点之间的数据共享和交互,序列化技术不可或缺。 #### C#中的序列化方法 在.NET框架下,C#提供了多种序列化的方式,其中最常用的三种分别是BinaryFormatter...
`java.util.Optional`、`java.util.ArrayList`、`java.util.HashMap`等内置类都实现了序列化,方便我们在实际开发中使用。 10. **源码分析**: 博文中可能深入分析了`ObjectOutputStream`和`ObjectInputStream`的...
### C#中的序列化与反序列化 ...根据具体的应用场景选择合适的序列化方式非常重要。例如,在对性能要求较高的场景下,可以选择BinaryFormatter;而在需要跨平台兼容性的情况下,则推荐使用XML序列化。
对于`HashTable`而言,可以通过实现`ISerializable`接口或使用.NET Framework提供的序列化功能来实现序列化。 **序列化方法**: 1. **BinaryFormatter**:这是一种高效的序列化方法,适用于对象图比较复杂的情况。 ...
本篇文章详细介绍了如何在C#中使用`ArrayList`与数据库进行交互,包括序列化和反序列化的过程、参数化查询的实现以及内存流的使用。这些知识点不仅适用于本案例,也是开发过程中非常实用的技术。理解这些概念有助于...
对于非基本类型,如自定义对象,需要该对象实现Parcelable接口,因为Parcelable接口提供了序列化和反序列化的方法,使对象能够被Intent安全地传递。 1. 实现Parcelable接口:为了将ArrayList中的每个元素(T)传递...
Kryo序列化及反序列化用法示例 Kryo是Java对象图形序列化框架,它主要特点是性能高效和易用,该项目用来序列化对象到文件、数据库或者网络。序列化是指将对象转换为字节流的过程,而反序列化是指将字节流转换回对象...
在Java编程中,对象序列化是将一个对象的状态转换为可...在实际应用中,我们还需要考虑异常处理、性能优化以及安全性问题,比如使用`transient`关键字忽略某些字段,或者使用`@JsonAutoDetect`注解控制序列化的可见性。
ArrayList是Java编程语言中常用的集合类之一,它实现了List接口,并且其底层数据结构基于数组。...同时,掌握ArrayList的序列化和克隆机制也有助于在项目开发中实现更灵活的数据持久化和对象复制。
### Json序列化类知识点 #### 一、简介 在给定的代码片段中,我们可以看到一个名为`DataSerialHelper`的类,它包含了几个用于处理JSON数据的方法。这些方法允许用户将JSON字符串转换为对象(`Json2Object`),将...
该数组是`transient`类型的,这意味着当序列化`ArrayList`对象时,不会保存该数组的信息,只保存列表元素本身及其相关的状态信息。 #### 构造方法 `ArrayList`提供了多种构造方法来适应不同的应用场景: 1. **无参...
由于ArrayList可能包含大量的数据,为了避免不必要的序列化操作,ArrayList中的elementData数组被标记为transient,以表明在序列化过程中不应被默认序列化机制处理。 在进行序列化时,可以使用transient关键字标记...
在这些练习源码中,你可能会看到如何创建和使用各种集合,如何设计和管理线程,以及如何实现和应用序列化。通过实践这些代码,你将更好地理解这些概念,并能灵活地应用到实际项目中。对于Java初学者来说,这是一个极...