我感觉io流相比其他零基础课程有点难听懂,有没有同感的兄弟,我听到一半实在听不下去了,还是先去看看别的内容
2020-06-13
我感觉java面向对象遵循的是宏观因果律
序列化的时候调用所有父类的构造方法其实是因为Bar2 bar = new Bar2()这个实例化对象的操作造成的,可以在后面System.out.println("构造方法之后");可以看出来,因为要构造子类都得先构造父类
反序列化如果父亲实现了序列化接口,对儿子进行序列化时其序列化代码中就蕴含了父亲的信息,也就知道了其父亲的存在,但不知道他爷爷以及一直到老祖宗Object是否存在,因为他们没有实现序列化接口,所以得依次创建这些祖先类的实例,也就是调用构造方法。但由于他父亲已经存在于序列化信息中。所以就不用再构造一遍了。
为了保证反序列不是无中生有的
序列化的时候调用所有父类的构造方法其实是因为Bar2 bar = new Bar2()这个实例化对象的操作造成的,可以在后面System.out.println("构造方法之后");可以看出来,因为要构造子类都得先构造父类
反序列化如果父亲实现了序列化接口,对儿子进行序列化时其序列化代码中就蕴含了父亲的信息,也就知道了其父亲的存在,但不知道他爷爷以及一直到老祖宗Object是否存在,因为他们没有实现序列化接口,所以得依次创建这些祖先类的实例,也就是调用构造方法。但由于他父亲已经存在于序列化信息中。所以就不用再构造一遍了。
为了保证反序列不是无中生有的
2019-10-15
读文件是硬盘往内存里不断input,CPU在内存里不断read
写文件是CPU不断往内存里write,内存不断往硬盘里存储output
所以把内存看成主体,输入流是本来就存在于硬盘的数据不断输入到内存,我们read内存就能看到数据了,是一种输入过程
输出流得先write进内存,内存再输出到硬盘进行存储,是一种输出过程也就是output
close()应该就是关闭内存
写文件是CPU不断往内存里write,内存不断往硬盘里存储output
所以把内存看成主体,输入流是本来就存在于硬盘的数据不断输入到内存,我们read内存就能看到数据了,是一种输入过程
输出流得先write进内存,内存再输出到硬盘进行存储,是一种输出过程也就是output
close()应该就是关闭内存
2019-10-13
字符流的底层也是字节流
所以在创建字符流对象时,也需要把字节流对象传入
如:InputStreamReader in=new InputSteamReader(new FileInputStream());
所以在创建字符流对象时,也需要把字节流对象传入
如:InputStreamReader in=new InputSteamReader(new FileInputStream());
2019-09-24