import java.io.*;
/*
将对象从对内存中保存到本地硬盘上。
实现对象的本地持久化保存。
但被保存的对象必须实现一个Serializable接口。
拥有一个UID。
transient:关键字用于不需要本地持久化保存的成员属性。
*/
class ObjectOutputStreamDemo
{
public static void main(String[] args) throws IOException
{
ObjectOutputStream oos =
new ObjectOutputStream(new FileOutputStream("obj.txt"));
oos.writeObject(new Person("zhangsan",30,199));
oos.close();
/**/
}
}
class Person implements Serializable
{
public static final long serialVersionUID = 42L;
private transient String name;
private int age;
private int num ;
Person(String name,int age,int num)
{
this.name = name;
this.age = age;
this.num = num;
}
public String toString()
{
return name+"::"+age+":"+num;
}
}
import java.io.*;
class ObjectInputStreamDemo
{
public static void main(String[] args) throws Exception
{
ObjectInputStream ois =
new ObjectInputStream(new FileInputStream("obj.txt"));
Person p = (Person)ois.readObject();
System.out.println(p.toString());
ois.close();
}
}
分享到:
相关推荐
java开发eclipse中文版(共四个分卷).part2
【压缩包子文件的文件名称列表】:QqService、数据库、chatWindow、ObjectStream - **QqService**:这个名字可能代表了服务层的代码,负责处理业务逻辑,如用户认证、消息发送和接收等。这部分可能包括了网络通信的...
14. **使用ObjectStream 的方法后,调用release(),释放对象** 错误。`ObjectStream` 类没有 `release()` 方法。在处理流时,通常使用 `close()` 方法来释放资源。 15. **减小单个方法的复杂度,使用的 if, ...
如果在一个实现了Serializable接口的类中声明了一个变量为transient,当该类被写入ObjectStream时,这个变量的值不会被写入流中。当从ObjectStream中恢复这个类时,该变量的值会变成null。 2. **哪些容器使用...
14. 对象释放:使用ObjectStream 的方法后,不需要调用release() 释放对象。 15. 代码复杂度:减小单个方法的复杂度,使用的 if, while, for, switch 语句要在10个以内。 16. 代码缩进:排版时,代码缩进应该采用的...
相反,当对象从`ObjectStream`中读取回来时,`transient`变量的值会默认设置为`null`(对于引用类型)或其默认值(如0、false等,对于基本数据类型)。这主要用于那些包含敏感信息或者大体积数据的变量,例如数据库...
在RMI中,客户端通过Stub对象将请求序列化为Java ObjectStream,然后通过Socket发送到服务器端。服务器端的Skeleton接收流并反序列化,调用实际的服务处理类,处理结果再经过同样的过程返回给客户端。 XML-RPC则是...
漏洞的触发条件是Dubbo HTTP实例尝试对Java ObjectStream中的数据进行反序列化,而这些数据可能包含了恶意的类,即所谓的“小工具链”。这些工具链能够触发恶意代码执行,允许攻击者执行任意操作系统命令,对系统...
这意味着当一个包含`transient`变量的类被写入到对象流(ObjectStream)时,这个变量的值不会被写入。当从对象流中恢复类时,该变量的值会变为`null`。这通常用于那些不希望在序列化过程中保留状态的变量。 2. **...
14. **资源释放**:使用`ObjectStream`后,应当关闭流,而不是调用`release()`。 15. **控制结构复杂度**:尽量保持单个方法的控制结构(if, while, for, switch)在10个以内,以降低方法的复杂度。 在排版和代码...
14. **资源释放** - 使用`ObjectStream`后,应当使用`close()`方法释放资源,而非`release()`。 15. **方法复杂度** - 减少单个方法的复杂度,避免使用过多的控制结构如`if`、`while`、`for`、`switch`,以提高可...
14. **释放对象**:使用完`ObjectStream`后,应正确关闭,而不是调用`release()`。 15. **方法复杂度**:尽量保持单个方法的复杂度较低,避免过多的控制结构,如`if`, `while`, `for`, `switch`。 在排版方面: -...
这涉及到了字节流(ByteStream)、对象流(ObjectStream)等不同类型的流,确保数据在网络间准确无误地传输。 再者,多线程技术在本游戏中主要用于提升程序的并发性能和用户体验。在游戏运行时,至少需要两条主线程...
- 使用`reset()`方法防止`ObjectStream`的内存泄漏。 - 边界值检查在条件和循环中很重要。 - 确保`break`、`return`、`throw`的适当使用。 - 对于可能导致运行时异常的方法,应先进行判断或捕获异常。 - 避免...
14. **释放对象**:使用`ObjectStream`后,不需要调用`release()`,而是让垃圾收集器自动回收。 15. **代码复杂度**:尽量保持单个方法的复杂度低,`if/while/for/switch`语句不超过10个。 **单项选择题解析**: ...
如果一个变量在一个实现了`Serializable`接口的类中被声明为`transient`,那么当这个类被写入到对象流(ObjectStream)时,该变量的值不会被写入。当从对象流中恢复这个类时,该变量的值会变为`null`。 2. **使用...
RMI使用Java ObjectStream作为传输标准格式,通过Java序列化机制处理流的转换。 **XML-RPC** XML-RPC与RMI类似,但使用XML作为数据交换格式,因此支持跨语言通信。在XML-RPC中,请求信息被封装成XML文档,然后转化...