# java201904018 **Repository Path**: GUOSD/java201904018 ## Basic Information - **Project Name**: java201904018 - **Description**: XML - **Primary Language**: Java - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-04-18 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # java201904018 #### 介绍 XML #### 软件架构 软件架构说明 #### 安装教程 1. xxxx 2. xxxx 3. xxxx #### 使用说明 1. 字节流和字符流 1.1 流工具类的应用 2.对象流与序列化 2.1 对象流 对象流:是将内存中存储的对象的快照内容写出到指定外部文件中; 对象流是二进制的字节流; 被对象流进行操作的对象要求必须实现Serializable接口; Serializable是一个标识性的接口,没有具体方法; 2.2 序列化 序列化:信息对象经过IO或者网络传输之后,可以按照一定的序列顺序重新进行组合复原的过程; 序列化分为三个阶段: 序列化处理; 网络传输或IO存储; 反序列化; java中的序列化由jvm完成的,需要进行序列化处理的类只需要实现Serializable接口即可; 2.3 对象输出流和对象输入流 对象输出流将对象进行序列化处理之后进行网络传输或者IO存储; 对象输入流将序列化的对象的二进制字节流内容读入内存中,将对象反序列化进行复原; 注意: 对象输入流读取的文件必须是对象输出流写出的文件内容; 对象输入流读取之后再内存中创建的对象和使用对象输出流写出的对象已经不是同一个对象了;(地址引用不同) 总结: 在内存中创建一个对象的方法: new创建对象实例; 对象输入流创建一个对象实例; 使用反射创建一个对象实例; 使用深克隆复制一个对象; 2.4 transient关键字 如果在使用序列化对象流进行对象传输或者存储时,如果对象中的某个属性字段的值不允许进行序列化处理,则可以使用transient关键字进行修饰可以避免被序列化处理; 在使用对象输入流读取或者接收对象输出流序列化的内容时,使用transient关键字修饰的属性的值会初始化为默认值; #### 参与贡献 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/)