我感覺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