我感覺io流相比其他零基礎(chǔ)課程有點難聽懂,有沒有同感的兄弟,我聽到一半實在聽不下去了,還是先去看看別的內(nèi)容
2020-06-13
FileInputStream構(gòu)造器的內(nèi)部有關(guān)于源文件空值的檢驗,所以應(yīng)該只要catch就行吧
2020-03-21
我感覺java面向?qū)ο笞裱氖呛暧^因果律
序列化的時候調(diào)用所有父類的構(gòu)造方法其實是因為Bar2 bar = new Bar2()這個實例化對象的操作造成的,可以在后面System.out.println("構(gòu)造方法之后");可以看出來,因為要構(gòu)造子類都得先構(gòu)造父類
反序列化如果父親實現(xiàn)了序列化接口,對兒子進行序列化時其序列化代碼中就蘊含了父親的信息,也就知道了其父親的存在,但不知道他爺爺以及一直到老祖宗Object是否存在,因為他們沒有實現(xiàn)序列化接口,所以得依次創(chuàng)建這些祖先類的實例,也就是調(diào)用構(gòu)造方法。但由于他父親已經(jīng)存在于序列化信息中。所以就不用再構(gòu)造一遍了。
為了保證反序列不是無中生有的
序列化的時候調(diào)用所有父類的構(gòu)造方法其實是因為Bar2 bar = new Bar2()這個實例化對象的操作造成的,可以在后面System.out.println("構(gòu)造方法之后");可以看出來,因為要構(gòu)造子類都得先構(gòu)造父類
反序列化如果父親實現(xiàn)了序列化接口,對兒子進行序列化時其序列化代碼中就蘊含了父親的信息,也就知道了其父親的存在,但不知道他爺爺以及一直到老祖宗Object是否存在,因為他們沒有實現(xiàn)序列化接口,所以得依次創(chuàng)建這些祖先類的實例,也就是調(diào)用構(gòu)造方法。但由于他父親已經(jīng)存在于序列化信息中。所以就不用再構(gòu)造一遍了。
為了保證反序列不是無中生有的
2019-10-15
讀文件是硬盤往內(nèi)存里不斷input,CPU在內(nèi)存里不斷read
寫文件是CPU不斷往內(nèi)存里write,內(nèi)存不斷往硬盤里存儲output
所以把內(nèi)存看成主體,輸入流是本來就存在于硬盤的數(shù)據(jù)不斷輸入到內(nèi)存,我們read內(nèi)存就能看到數(shù)據(jù)了,是一種輸入過程
輸出流得先write進內(nèi)存,內(nèi)存再輸出到硬盤進行存儲,是一種輸出過程也就是output
close()應(yīng)該就是關(guān)閉內(nèi)存
寫文件是CPU不斷往內(nèi)存里write,內(nèi)存不斷往硬盤里存儲output
所以把內(nèi)存看成主體,輸入流是本來就存在于硬盤的數(shù)據(jù)不斷輸入到內(nèi)存,我們read內(nèi)存就能看到數(shù)據(jù)了,是一種輸入過程
輸出流得先write進內(nèi)存,內(nèi)存再輸出到硬盤進行存儲,是一種輸出過程也就是output
close()應(yīng)該就是關(guān)閉內(nèi)存
2019-10-13
字符流的底層也是字節(jié)流
所以在創(chuàng)建字符流對象時,也需要把字節(jié)流對象傳入
如:InputStreamReader in=new InputSteamReader(new FileInputStream());
所以在創(chuàng)建字符流對象時,也需要把字節(jié)流對象傳入
如:InputStreamReader in=new InputSteamReader(new FileInputStream());
2019-09-24