1.Java IO和NIO的区别
IO | NIo |
面向流编程 | 面向对象编程 |
阻塞 | 非阻塞 |
无 | 有选择器 |
2.IO流:用来读写数据
- 2.1 输入流:读数据
- 2.2 输出流:写数据
总结:输入输出其实是相对于JVM内存的
- 2.3 字节流可以处理所有类型的文件
- 2.4 字符流只能处理文本文件,并且是处理文本文件的最佳处理方案
总结:计算机中所有的数据都是以二进制数据形式保存的,二进制数据也就是二进制数字0,1
IO流可以把数据写到本地文件中,也可以从本地文件中读取文件
3.序列化:将对象的状态信息转换成可以存储或传输形式的过程
- 计算机中保存的所有数据都是二进制数据,因此序列化就是把计算机中各种各样的数据格式(文本,音频,视频等)变成
数字的过程。
- 变成数字后就可以使用IO流进行读写,因此IO流的读写的过程,中间进行了序列化和反序列化的过程
4.类加载过程
4.1.加载
4.1.1 将类的字节码载入方法区,并创建class对象
4.1.2 如果父类未加载,先加载父类
4.1.3 加载是懒惰加载
4.2.链接
4.2.1 验证 验证类是否符合Class规范,合法性,安全性检查
4.2.2 准备 为static变量分配空间 ,设置默认值
4.2.3 解析 将符合引用解析成直接引用
4.3.初始化
4.3.1 执行静态代码块和非final 静态变量赋值
4.3.2 初始化是懒惰执行