简单的序列化测试

public class TestSereialization implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = -4108224186821624775L;
	
	private String str;	

	public String getStr() {
		return str;
	}

	public void setStr(String str) {
		this.str = str;
	}

	public static void main(String[] args) throws Exception {
		
		TestSereialization ts = new TestSereialization();
		ts.setStr("cathy is very pretty.");
		
		FileOutputStream fos = new FileOutputStream(new File("E:/test.txt"));
		ObjectOutputStream oos = new ObjectOutputStream(fos);
		oos.writeObject(ts);
		oos.close();
		
		FileInputStream fis = new FileInputStream(new File("E:/test.txt"));
		ObjectInputStream ois = new ObjectInputStream(fis);
		TestSereialization ts2 = (TestSereialization)ois.readObject();
		ois.close();
		System.out.println(ts2.getStr());
	}
}

结果输出为

我们可以看看E:\\test.txt的内容。


接下来我们更改一下serialVersionUID,然后再直接反序列化会怎样呢

public class TestSereialization implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = -5L;
	
	private String str;	

	public String getStr() {
		return str;
	}

	public void setStr(String str) {
		this.str = str;
	}

	public static void main(String[] args) throws Exception {
		
		TestSereialization ts = new TestSereialization();
		ts.setStr("cathy is very pretty.");
		/*
		FileOutputStream fos = new FileOutputStream(new File("E:/test.txt"));
		ObjectOutputStream oos = new ObjectOutputStream(fos);
		oos.writeObject(ts);
		oos.close();*/
		
		FileInputStream fis = new FileInputStream(new File("E:/test.txt"));
		ObjectInputStream ois = new ObjectInputStream(fis);
		TestSereialization ts2 = (TestSereialization)ois.readObject();
		ois.close();
		System.out.println(ts2.getStr());
	}
}
一下是console的报错显示:
local class incompatible: stream classdesc serialVersionUID = -4108224186821624775, local class serialVersionUID = -5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot提供了对Redis的自动配置,可以方便地进行序列化和反序列化操作。下面是关于Spring Boot Redis序列化的介绍和示例代码: 1. Redis介绍: Redis是一个开源的内存数据结构存储系统,可以用作数据库、缓存和消息中间件。它支持多种数据结构,如字符串、哈希、列表、集合和有序集合。 2. 添加pom.xml依赖: 在Spring Boot项目的pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 3. 自动配置分析: Spring Boot会根据配置文件中的属性自动配置Redis连接工厂、Redis模板和Redis操作类等。 4. application.properties配置: 在application.properties文件中配置Redis相关属性,例如: ```properties spring.redis.host=localhost spring.redis.port=6379 spring.redis.password= ``` 5. 连接Redis测试: 可以使用RedisTemplate或者StringRedisTemplate来连接Redis并进行操作。以下是一个简单的示例代码: ```java @Autowired private RedisTemplate<String, Object> redisTemplate; public void set(String key, Object value) { redisTemplate.opsForValue().set(key, value); } public Object get(String key) { return redisTemplate.opsForValue().get(key); } ``` 6. 使用Jedis客户端: 除了使用RedisTemplate,还可以使用Jedis客户端来连接Redis。以下是一个示例代码: ```java @Autowired private JedisConnectionFactory jedisConnectionFactory; public void set(String key, String value) { try (Jedis jedis = jedisConnectionFactory.getConnection().getNativeConnection()) { jedis.set(key, value); } } public String get(String key) { try (Jedis jedis = jedisConnectionFactory.getConnection().getNativeConnection()) { return jedis.get(key); } } ``` 7. 自定义默认的序列化器: Spring Boot默认使用JdkSerializationRedisSerializer作为序列化器,可以通过自定义配置来修改默认的序列化器。以下是一个示例代码: ```java @Configuration public class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory); template.setDefaultSerializer(new GenericJackson2JsonRedisSerializer()); return template; } } ``` 8. 序列化问题: 在使用Redis进行序列化时,需要注意对象的序列化和反序列化。可以使用Fastjson等第三方库来进行自定义的序列化和反序列化操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值