Java序列化注意事项
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
什么是Java序列化和反序列化:
????Java序列化是指把Java對象轉(zhuǎn)換為字節(jié)序列的過程;而Java反序列化是指把字節(jié)序列恢復為Java對象的過程。
用途:
? ? 當傳輸數(shù)據(jù)的時候,不可能傳輸java對象。需要將java對象轉(zhuǎn)化成json字符串、String字符串、字節(jié)碼等傳輸,然后再反序列化成java對象。
如何應用序列化和反序列化:
? ? 百度發(fā)現(xiàn)序列化和反序列化有兩種繼承Serializable接口或者Externalizable接口,或者還有更多實現(xiàn)的方式。因為項目中用到的只有Serializable接口,所以今天這個只說Serializable接口,以后有接觸到其他的再進行補充。
Serializable:
? ? 注:serializable接口里面內(nèi)容是空的。它屬于標識接口,標識某各類只要實現(xiàn)此接口就會具備某種特性。
? ? 對類的要求:
? ? 1、必須繼承Serializable接口實現(xiàn)序列化功能。
? ? 2、類必須要有空的構(gòu)造器。當類沒有構(gòu)造器的時候,jvm會自動給類添加一個空的構(gòu)造器,如果類中有非空的構(gòu)造器,那么jvm不會給再添加空的構(gòu)造器,那樣就無法建立該類的對象。
? ? 3、使用transient,修飾屬性,而不能修飾方法和類,被transient修飾的屬性不會被序列化,可以起到保護敏感數(shù)據(jù)的數(shù)據(jù)(比如銀行賬戶信息,將password用transient修飾,那么密碼就不會被傳過去,如果是string類型,那么接收過來是null)
????
轉(zhuǎn)載于:https://my.oschina.net/WEguo/blog/1538202
總結(jié)
以上是生活随笔為你收集整理的Java序列化注意事项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Too many links;mkdir
- 下一篇: 2017甲骨文JavaOne参会感想