? ? ? ? 作為Java自帶的一個(gè)序列化方式峰鄙,實(shí)現(xiàn)Serializable接口就可以對(duì)類進(jìn)行序列化栖袋,不過(guò)叹卷,書(shū)中列舉了許多這種方式的問(wèn)題。
? ? ? ? 1绅作、實(shí)現(xiàn)Serializable接口而付出的最大代價(jià)是芦圾,一旦一個(gè)類被發(fā)布,就大大降低了“改變這個(gè)類的實(shí)現(xiàn)的靈活性”俄认;
? ? ? ? 2个少、實(shí)現(xiàn)Serializable接口第二個(gè)代價(jià)是增加了出現(xiàn)Bug和安全漏洞的可能性;
? ? ? ? 3眯杏、實(shí)現(xiàn)Serializable接口第三個(gè)代價(jià)是隨著類發(fā)行新的版本夜焦,相關(guān)測(cè)試負(fù)擔(dān)也會(huì)增加;
? ? ? ? 4岂贩、實(shí)現(xiàn)Serializable接口并不是一個(gè)很輕松就可以做出的決定茫经;
? ? ? ? 5、為了繼承而設(shè)計(jì)的類減少實(shí)現(xiàn)實(shí)現(xiàn)Serializable接口萎津,用戶的接口也盡可能少繼承Serializable接口卸伞;
? ? ? ? 6、內(nèi)部類不應(yīng)該實(shí)現(xiàn)Serializable接口锉屈。
? ? ? ? 上面的1荤傲、3、5其實(shí)可以一起說(shuō)一下颈渊,因?yàn)橥ㄟ^(guò)實(shí)現(xiàn)Serializable接口來(lái)進(jìn)行的序列化其實(shí)有一個(gè)問(wèn)題遂黍,就是你的子類或者父類都需要實(shí)現(xiàn)Serializable接口。不然在序列化之后整個(gè)對(duì)象是會(huì)出現(xiàn)數(shù)據(jù)缺失而導(dǎo)致Bug俊嗽。也由于這個(gè)原因雾家,對(duì)于測(cè)試來(lái)說(shuō)每次新的測(cè)試也要多考慮有沒(méi)有序列化成功的問(wèn)題。關(guān)于實(shí)現(xiàn)Serializable接口進(jìn)行序列化因?yàn)橹笆褂弥谐鲞^(guò)一次TT绍豁,所以認(rèn)識(shí)到了相對(duì)應(yīng)的不足芯咧,現(xiàn)在更常使用JsonUtils來(lái)進(jìn)行序列化。