java序列化浅谈

简介:   首先大家进来第一个疑问肯定是“什么是序列化?为什么要使用序列化?怎么实现一个简单的序列化案例?”1.序列化就是把对象以一种规范的二进制形式存在内存中,另一边以反序列化方式获取;2那么为什么要使用序列化呢?不使用序列化的话,就没有一个规范,你就算存储了数据,别人也不知道以哪种规范去获取;所以序列化就是一种大家都认同的规范了;3.接下来我们实现一个简单的序列化案例,只要会写“Hello World!!!”的人都可以实现这个案例!!!  1.首先建一个普通的java项目:    2.随便写一个名字,然后Finish    3.随便建一个java类;  复制下面的即可,看好了。

  首先大家进来第一个疑问肯定是“什么是序列化?为什么要使用序列化?怎么实现一个简单的序列化案例?”

1.序列化就是把对象以一种规范的二进制形式存在内存中,另一边以反序列化方式获取;

2那么为什么要使用序列化呢?不使用序列化的话,就没有一个规范,你就算存储了数据,别人也不知道以哪种规范去获取;所以序列化就是一种大家都认同的规范了;

3.接下来我们实现一个简单的序列化案例,只要会写“Hello World!!!”的人都可以实现这个案例!!!

  1.首先建一个普通的java项目:

    2.随便写一个名字,然后Finish

    3.随便建一个java类;

  复制下面的即可,看好了。这个类是实现了序列化的接口的

public class Demo01 implements Serializable{
    public byte version = 100;         
    public byte count = 0;  
    private String name ;
	@Override
	public String toString() {
		return "Dome01 [version=" + version + ", count=" + count + ", name=" + name + "]";
	}
	public byte getVersion() {
		return version;
	}
	public void setVersion(byte version) {
		this.version = version;
	}
	public byte getCount() {
		return count;
	}
	public void setCount(byte count) {
		this.count = count;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
    
    
}

  4.继续新建一个类,写个main方法

复制即可,

public class Demo02 {
    public static void main(String args[]) throws IOException {  
        //创建一个文件输出流,指定一个路径
        FileOutputStream fos = new FileOutputStream("F:/temp.out");         
        ObjectOutputStream oos = new ObjectOutputStream(fos);          
        Demo01 ts = new Demo01();
        //随意设置几个值,方便测试
        ts.setName("test2");
        //输出,刷新,关流
        oos.writeObject(ts);          
        oos.flush();          
        oos.close(); 
    }
}

  5.编写测试类,测试即可;测试步骤自行发挥!!!!!

public class Demo03 {
    public static void main(String args[]) throws Exception {   
        //获取文件输入流,就是你刚刚指定的文件
        FileInputStream fis = new FileInputStream("F:/temp.out");          
        ObjectInputStream oin = new ObjectInputStream(fis);           
        Dome01 ts = (Dome01)oin.readObject();  
        //获取打印即可
        System.out.println("version="+ts.version+ts.getName());    
        
        if(oin!=null){
            oin.close();
        }
    } 
}

 

 6.是不是很简单,是不是不用想,案例就出来了!!!!还是需要自己都思考思考!!!

 

目录
相关文章
|
2月前
|
存储 Java
【IO面试题 四】、介绍一下Java的序列化与反序列化
Java的序列化与反序列化允许对象通过实现Serializable接口转换成字节序列并存储或传输,之后可以通过ObjectInputStream和ObjectOutputStream的方法将这些字节序列恢复成对象。
|
6天前
|
JSON NoSQL Java
redis的java客户端的使用(Jedis、SpringDataRedis、SpringBoot整合redis、redisTemplate序列化及stringRedisTemplate序列化)
这篇文章介绍了在Java中使用Redis客户端的几种方法,包括Jedis、SpringDataRedis和SpringBoot整合Redis的操作。文章详细解释了Jedis的基本使用步骤,Jedis连接池的创建和使用,以及在SpringBoot项目中如何配置和使用RedisTemplate和StringRedisTemplate。此外,还探讨了RedisTemplate序列化的两种实践方案,包括默认的JDK序列化和自定义的JSON序列化,以及StringRedisTemplate的使用,它要求键和值都必须是String类型。
redis的java客户端的使用(Jedis、SpringDataRedis、SpringBoot整合redis、redisTemplate序列化及stringRedisTemplate序列化)
|
12天前
|
存储 Java 开发者
Java编程中的对象序列化与反序列化
【9月更文挑战第20天】在本文中,我们将探索Java编程中的一个核心概念——对象序列化与反序列化。通过简单易懂的语言和直观的代码示例,你将学会如何将对象状态保存为字节流,以及如何从字节流恢复对象状态。这不仅有助于理解Java中的I/O机制,还能提升你的数据持久化能力。准备好让你的Java技能更上一层楼了吗?让我们开始吧!
|
20天前
|
存储 Java
Java编程中的对象序列化与反序列化
【9月更文挑战第12天】在Java的世界里,对象序列化与反序列化是数据持久化和网络传输的关键技术。本文将带你了解如何通过实现Serializable接口来标记一个类的对象可以被序列化,并探索ObjectOutputStream和ObjectInputStream类的使用,以实现对象的写入和读取。我们还将讨论序列化过程中可能遇到的问题及其解决方案,确保你能够高效、安全地处理对象序列化。
|
2月前
|
存储 Java
Java编程中的对象序列化与反序列化
【8月更文挑战第28天】在Java世界中,对象序列化与反序列化是数据持久化和网络传输的关键技术。本文将深入浅出地探讨这一过程,带你领略其背后的原理及应用,让你的程序在数据的海洋中自由航行。
|
2月前
|
XML 存储 JSON
【IO面试题 六】、 除了Java自带的序列化之外,你还了解哪些序列化工具?
除了Java自带的序列化,常见的序列化工具还包括JSON(如jackson、gson、fastjson)、Protobuf、Thrift和Avro,各具特点,适用于不同的应用场景和性能需求。
|
1月前
|
存储 Java
Java编程中的对象序列化与反序列化
【9月更文挑战第2天】在Java的世界里,对象序列化和反序列化就像是给数据穿上了一件隐形的斗篷。它们让数据能够轻松地穿梭于不同的系统之间,无论是跨越网络还是存储在磁盘上。本文将揭开这层神秘的面纱,带你领略序列化和反序列化的魔法,并展示如何通过代码示例来施展这一魔法。
17 0
|
2月前
|
存储 安全 Java
揭秘Java序列化神器Serializable:一键解锁对象穿越时空的超能力,你的数据旅行不再受限,震撼登场!
【8月更文挑战第4天】Serializable是Java中的魔术钥匙,开启对象穿越时空的能力。作为序列化的核心,它让复杂对象的复制与传输变得简单。通过实现此接口,对象能被序列化成字节流,实现本地存储或网络传输,再通过反序列化恢复原状。尽管使用方便,但序列化过程耗时且存在安全风险,需谨慎使用。
38 7
|
3月前
|
存储 安全 Java
day24:Java零基础 - 序列化与反序列化
【7月更文挑战第24天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
35 1
|
3月前
|
存储 安全 Java
day23:Java零基础 - 反序列化
【7月更文挑战第23天】🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
36 2
下一篇
无影云桌面