`

序列化测试

阅读更多
import java.io.*;

class Student implements Serializable {
	private String name;
	private transient String password;
	private static int count = 0;

	public Student(String name, String password) {
		System.out.println("调用Student的带参的构造方法");
		this.name = name;
		this.password = password;
		count++;
	}

	public String toString() {
		return "人数: " + count + " 姓名: " + name + " 密码: " + password;
	}
}

public class ObjectSerTest1 {
	public static void main1(String args[]) {
		try {

			FileOutputStream fos = new FileOutputStream("test.obj");
			ObjectOutputStream oos = new ObjectOutputStream(fos);

			Student s1 = new Student("张三", "12345");
			Student s2 = new Student("王五", "54321");

			oos.writeObject(s1);
			oos.writeObject(s2);

			oos.close();

		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public static void main(String[] args) {
		try {
			FileInputStream fis = new FileInputStream("test.obj");
			ObjectInputStream ois = new ObjectInputStream(fis);

			Student s3 = (Student) ois.readObject();
			Student s4 = (Student) ois.readObject();

			System.out.println(s3);
			System.out.println(s4);

			ois.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 静态成员属于类级别的,所以不能序列化
这里的不能序列化的意思,是序列化信息中不包含这个静态成员域
你这个测试成功,是因为你都在同一个机器(而且是同一个进程),因为你这个jvm已经把count加载进来了,所以你获取的是加载好的count,如果你 是传到另一台机器或者你关掉程序重写写个程序读入test.obj,此时因为别的机器或新的进程是重新加载count的,所以count信息就是初始时的 信息。

分享到:
评论

相关推荐

    序列化测试-java

    在测试代码中,你可以比较这三种序列化器在不同场景下的性能差异,如序列化和反序列化的时间、生成的字节数量,以及在不同数据结构上的表现。通过这样的测试,可以为你的项目选择最适合的序列化解决方案。

    Java反序列化终极测试工具

    6. **自动化测试**:支持集成到持续集成/持续部署(CI/CD)流程,自动运行反序列化测试,确保每次代码更改后,反序列化安全仍能得到保障。 7. **安全配置建议**:根据测试结果提供安全配置建议,例如使用安全的反序列...

    反序列化工具

    为了更好地利用`Burpsuite Pro`进行反序列化测试,你需要了解常见的反序列化漏洞利用技巧,比如利用`__deserialize`函数或特定的Java类(如`java.lang.reflect.Method`)来触发代码执行。此外,了解如何使用` ...

    Bboss和xstream序列化反序列化性能对比1

    在序列化测试中,Bboss和Xstream的表现各有优劣。对于小负荷数据,Bboss在1000次执行中耗时78毫秒,而Xstream耗时218毫秒。这意味着在小规模数据处理上,Bboss具有明显的性能优势,产生的包大小也更小。 在反序列化...

    php数据序列化测试实例详解

    测试实例中,创建了一个简单的数组`$msg`,然后使用这三种方法进行100,000次序列化操作,并记录了运行时间、输出长度和内存使用情况。结果显示,`msgpack_pack`在PHP7环境中执行速度最快,输出长度最短,而`...

    java反序列化工具

    Java反序列化是一种将已序列化的对象状态转换回对象的过程,它是Java平台中持久化数据的一种常见方式。在Java应用程序中,序列化用于保存对象的状态以便稍后恢复,或者在网络间传输对象。然而,这个过程也可能引入...

    C# Protobuf-Net 序列化 样例

    在项目中,`CompressTest.sln`可能是一个Visual Studio解决方案文件,包含了关于这个序列化测试项目的配置信息。`CompressTest.suo`是用户选项文件,通常包含用户的IDE设置和调试信息,这些文件不直接影响代码运行,...

    C#的控件使用:树形图TreeView如何实现序列化和反序列化.rar

    本教程将详细讲解如何在C#中实现`TreeView`控件的序列化和反序列化,这对于数据持久化和用户界面状态的保存至关重要。 首先,让我们了解序列化和反序列化的基本概念。**序列化**是将对象的状态转换为可存储或传输的...

    序列化与反序列化

    在压缩包的文件名"JSon序列化与反序列化"中,我们可以期待找到关于JSON序列化和反序列化的详细教程、代码示例或者测试用例。这个文件可能包含多个Java源文件,每个文件都展示了一种特定的序列化或反序列化方法,以及...

    序列化测试:此仓库是探索三个序列化库的“游乐场”:Protobuf,Flatbuffers和MsgPack

    这个名为"序列化测试"的项目专注于评估三种流行的序列化库:Protobuf(Protocol Buffers)、Flatbuffers和MsgPack,它们都是用C++实现的。让我们详细探讨这三个库及其在高性能计算(HPC)环境中作为消息传递机制的...

    Json反序列化

    在"TestJson"这个例子中,可能包含了一个或多个测试用例,用于检验JSON反序列化的正确性。这可能是一个简单的JSON字符串,或者是一个包含复杂嵌套结构的JSON对象。开发者通常会编写测试代码,模拟从服务器获取JSON...

    Java反序列化工具.zip

    1. **Payload生成器**:创建特定格式的恶意序列化数据,用于测试应用程序对反序列化攻击的脆弱性。 2. **漏洞检测**:扫描WebLogic或JBoss服务器配置,识别可能易受反序列化攻击的组件或端点。 3. **防御策略**:...

    Unity 中使用Protobuf进行序列化和反序列化的Demo

    在Unity游戏引擎中,开发人员经常需要处理数据的序列化和反序列化,以便于存储、传输或网络通信。Protocol Buffers(Protobuf)是一种高效、跨平台的数据序列化协议,由Google开发。本Demo将展示如何在Unity中集成并...

    测试序列化程序(VS2010C#)

    标题中的"测试序列化程序(VS2010C#)"很可能是一个示例项目,演示了如何在Visual Studio 2010中使用C#进行对象的序列化和反序列化操作。 描述中提到的博客文章《C#序列化和反序列化(1)-简单序列化》可能详细介绍了...

    shiro反序列化测试工具.zip

    4. **测试工具的作用**:这些Shiro反序列化测试工具通常会模拟恶意的序列化数据,尝试在目标系统上进行反序列化操作,以检测是否存在漏洞。通过这些工具,开发者可以发现并修复Shiro配置或代码中的潜在问题。 5. **...

    主流序列化框架测试报告

    主流java语言实现的序列化框架的测试性能测试报告.......................................................................

    java序列化

    工具方面,有一些工具可以帮助开发者进行序列化测试和分析,如JAD(Java反编译器)可以查看序列化后的字节码,或者使用序列化可视化工具来更好地理解序列化对象的结构。 总之,Java序列化是一个重要的概念,它在...

    序列化性能测试JAVA

    序列化性能测试是评估不同序列化库或技术在处理大量数据时效率的关键环节。本篇文章将深入探讨Java序列化的概念、常见的序列化库以及如何进行性能测试。 首先,我们要理解什么是序列化。Java中的序列化是通过实现`...

    FST:快速Java序列化的替代品

    5. **测试与性能监控**:在使用FST后,应进行性能测试,确保其满足应用程序的需求,并在生产环境中监控序列化过程的性能和资源消耗。 总之,FST是一个强大的序列化库,尤其适用于对性能有高要求的Java项目。通过它...

Global site tag (gtag.js) - Google Analytics