序列化(串行化)

定義:

串行化(Serialization)是计算机科学中的一个概念,它是指将对象存储到介质(如文件、内存缓冲区等)中或是以二进制方式通过网络传输。

 

Java實現:

    1. 對象其類必須實現Serializable接口。

    2. 保存的數據為:普通成員變量值。(注:靜態成員變量,類方法,以及transient修飾的變量,全部忽略不保存。)

 

    3. 由對象輸入/輸出流來實現。

 

例子:

串行化(序列化)類

package com.my.ser;
import java.io.Serializable;
/**
 * @author Jack 2014-10-29 上午09:27:06
 *
 */
public class Car implements Serializable{
	public static String xingHao = "WPL";
	public transient int post = 123;
	public String name;
	public void start() {
		System.out.println("啟動汽車");
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String toString() {
		return "XingHao: "+this.xingHao + ",post: "+this.post+",name: "+this.name;
	}
}

 測試類

 

package com.my.ser;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

/**
 * @author Jack 2014-10-29 上午09:29:29
 *
 */
public class CarSer {

	public static void main(String[] args) {
		Car car = new Car();
		
		car.setName("JackCar");
		
		String filePath = "CarDemo.out";
		
		FileOutputStream fos = null;
		ObjectOutputStream oos = null;
		
		try {
			fos = new FileOutputStream(filePath);
			oos = new ObjectOutputStream(fos);
			
			oos.writeObject(car);
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (fos == null) fos.close();
				if (oos == null) oos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		Car newCar = null;
		
		FileInputStream fis = null;
		ObjectInputStream ois = null;
		
		try {
			fis = new FileInputStream(filePath);
			ois = new ObjectInputStream(fis);
			
			newCar = (Car)ois.readObject();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				if (fis == null) fis.close();
				if (ois == null) ois.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
		System.out.println("OldCar: " + car + "\nNewCar: " + newCar);
	}
}

 運行結果

OldCar: XingHao: WPL,post: 123,name: JackCar
NewCar: XingHao: WPL,post: 0,name: JackCar

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
一、实验目的: 1、深入了解与掌握同步时序逻辑电路的设计过程; 2、了解74LS74、74LS08、74LS32及74LS04芯片的功能; 3、能够根据电路图连接好实物图,并实现其功能。学会设计过程中的检验与完善。 二、实验内容描述: 题目:“1 1 1”序列检测器。 原始条件:使用D触发器( 74 LS 74 )、“与”门 ( 74 LS 08 )、“或”门( 74 LS 32 )、非门 ( 74 LS 04 ),设计“1 1 1”序列检测器。 集成电路引脚图: D触发器( 74 LS 74 ) “与”门 ( 74 LS 08 ) “或........ 三、实验设计过程: 第1步,画出原始状态图和状态表。 根据任务书要求,设计的序列检测器有一个外部输入x和一个外部输出Z。输入和输出的逻辑关系为:当外部输入x第一个为“1”,外部输出Z为“0”;当外部输入x第二个为“1”,外部输出Z为“0”;当外部输入x第三个为“1”,外部输出Z才为“1”。假定有一个外部输入x序列以及外部输出Z为: 输入x: 0 1 0 1 1 1 0 1 1 1 1 0 1 输出Z: 0 0 0 0 0 1 0 0 0 1 1 0 0 要判别序列检测器是否连续接收了“111”,电路必须用不同的状态记载外部输入x的值。假设电路的初始状态为A,x输入第一个“1”,检测器状态由A装换到B,用状态B记载检测器接受了111序列的第一个“1”,这时外部输出Z=0;x输入第二个“1”,检测器状态由B装换到C,用状态C记载检测器接受了111序列的第二个“1”,外部输出Z=0;x输入第三个“1”,检测器状态由C装换到D,外部输出Z=1。然后再根据外部输入及其他情况时的状态转移,写出相应的输出。以上分析了序列检测器工作,由此可画出图7-1所示的原始状态图。根据原始状态图可列出原始状态表,如表7-2所示。 现态 次态/输出 x = 0 x = 1 A A / 0 B / 0 B A / 0 C / 0 C A / 0 D / 1 D A / 0 D / 1 (表 7-2 原始状态表) (图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值