什么是序列化,什么又是反序列化?
Java 序列化就是指将对象转换为字节序列的过程,而反序列化则是只将字节序列转换成目标对象的过程。
seriallization 序列化 : 将对象转化为便于传输的格式, 常见的序列化格式:二进制格式,字节数组。
deseriallization 反序列化:将序列化的数据恢复为对象的过程。
常用的字节流和字符流。
IO流
字节流只能读ASCLL的文件,文件中有中文都不能用它读。
序列化和反序列化
对象从内存中写入磁盘(网络)的过程称为对象的持久化,也称为序列化。
从磁盘(网络)中读取文件到内存还原为对象的过程称为反序列化。
类必须实现
IO流有几种、流怎么分。
1.流按照方向分为输入流和输出流。都是从程序运行所在的内存来划分的。
输入流:只能从中读取数据,而不能向其写入数据,由InputStream和Reader作为基类。
输出流:只能向其写入数据,而不能从中读取数据。由OutputStream和Writer作为基类。
2.流按照传输单位分为字节流和字符流。
字节流和字符流的用法几乎完全一样,区别在于字节流和字符流所操作的数据单元不同。
字节流操作的数据单元是8位字节,由InputStream和OutputStream作为基类。
字符流操作的数据单元是16为的字符,由Reader和Writer作为基类。
3.java提供了四个基类,抽象类。
OutputStream字节输出流基类。InputStream字节输入流基类。Reader,字符输入流基类。Writer字符输出流基类。
4.字节流中常用的有 文件 对象 二进制。
5.字符流中常用的有 文件 一次读一行的缓冲。
1、继承Thread类创建线程类
定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务。创建Thread子类的实例,即创建了线程对象。调用线程对象的start()方法来启动该线程。
2.通过Runnable接口创建线程类。
定义runnable接口的实现类,并重写该接口的run()方法,该run()方法的方法体同样是该线程的线程执行体。
3、通过Callable和Future创建线程
创建Callable接口的实现类,并实现call()方法,该call()方法将作为线程执行体,并且有返回值。