# dz_java_io20200528 **Repository Path**: edu_luoxi/dz_java_io20200528 ## Basic Information - **Project Name**: dz_java_io20200528 - **Description**: io - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-05-28 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # dz_java_io20200528 #### 介绍 io #### 课堂笔记 ```aidl``` 1、字节流和字符流 aidl 1.1 IO流: 根据流向分类: 输出流:out 输入流:in 1.2 编码: 概念:编码是根据使用计算纪二进制对人类语言使用进行的一种迎着关系 常用的编码: ASCII码:主要是对英文字符以及一些常用的字符进行编码(美式键盘的字符进行编码); 不支持中文 中文编码:gb2312、gbk、big5(台湾、支持中文繁体),国内中文操作系统默认的编码是gbk; Unicaode码:utf-8;utf-16;utf-32;支持中文和西文 注意: 做题时,一般认为,英文字符占一个字节,中文字符是占二个字节 (实际上,中文可能占2个,3个,4个都有可能) over 2.对象流和序列化 aidl 2.1 对象流 对象流: 是将内存中存储的对象的快照内容写出到指定外部文件中; 对象流是二进制字节流 被对象流进行操作的对象要求必须实现Serializable接口; Serializable是一个标识性的接口 2.2 序列化 序列化:信息对象经过io或者网络传输之后,可以按照一定的序列顺序重新进行组合复原的过程 (将兑现的状态信息转换为可以存储或传输的形式的过程) 将数据信息-对象为基本单位进行持久化(存储)或网络传输的过程,称之为序列化,本质上可以理解为一种输出的形式 序列化可以分为三个阶段: 序列化处理: 网络传输或io存储 反序列化; 反序列化; 将被序列化的文件内容,以流的方式进行重新读取到内存当中的过程,称之为反序列化,本质上可以理解为一种输入的形式 Java中的序列化有jvm完成,需要进行序列化处理的类只需要实现Serializable接口就可以了 实现序列化常规设计要求: 1、需要进行序列化操作的属性必须拥有标准的getter、setter方法; 2、必须拥有无参构造。建议显示声明无参构造; 3、可以根据需要让被序列化的类实现Serializable接口 2.3 对象输出流和对象输入流 对象输出流是将对象进行序列化处理之后进行网络传输和Io存储; 对象输入流是将系列化的对象的二进制字节流内容读取到内存中,将对象反序列化进行复原; 注意: 对象输入流读取的文件必须是对象输出流写出的文件内容; 对象输入流读取之后在你内存创建的对象和使用输出流写出的对象已经不是同一个对象了,也就是地址引用不同 总结: 在内存中创建对象的方法: new 创建对象实例 对象输入流创建一个对象实例 使用反射创建一个实例对象; 使用深克隆复制一个对象; 2.4 transient关键字 如果在使用序列化对象流进行对象传输或者存储时,如果对象中的某个属性字段的值不允许进行序列化处理,则可用transient关键字进行修饰,可以避免被序列化处理 在使用对象流读取或只接受对象输出流序列化内容时,使用transient关键字修饰的属性的值会初始化为默认值 ```over``` #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. xxxx 2. xxxx 3. xxxx #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)