序列化: 就是把記憶體中的對象,轉換成位元組序列(或其他資料傳輸協定)以便于存儲(持久化)和網絡傳輸;
反序列化: 就是将收到位元組序列(或其他資料傳輸協定)或者是硬碟的持久化資料,轉換成記憶體中的對象。
像資料庫驅動類,就不能序列化,因為序列化後,localhost找不到位址,不能進行反序列化。
1、java 序列化
是一個重量級序列化架構(serializable),它會把這個對象的方方面面的資訊都序列化出去,産生的二進制序列體積臃腫龐大,但是資訊很全。
2、hadoop序列化
hadoop 自己開發了一套序列化機制(writable),精簡、高效,需要實作write方法 和 readfields方法。
3、spark序列化
spark中将對象序列化,預設調用jdk的objectoutputstream(serializable),是以,我們在spark代碼中,一般都要修改序列化器,可以用kryo序列化架構,kryo序列化架構的序列化結果要比jdk的序列化結果更精簡(少了一些類的元資訊)。
更多java、大資料學習面試資料,請掃碼關注我的公衆号:
專注于大資料和java開發,學習交流可以關注我的公衆号:javaydsj