Hessian序列化與Java默認的序列化區別?
1、 Hessian 支持跨語言串行
2、 比java序列化具有更好的性能和易用性
3、 支持的語言比較多
package com.xingej.ser.impl; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import com.caucho.hessian.io.HessianInput; import com.caucho.hessian.io.HessianOutput; import com.xingej.ser.ISerializer; public class HessianSerializer implements ISerializer { @Override public <T> byte[] serialize(T obj) { // 1、創建字節輸出流 ByteArrayOutputStream bos = new ByteArrayOutputStream(); // 2、對字節數組流進行再次封裝 HessianOutput hessianOutput = new HessianOutput(bos); try { // 注意,obj 必須實現Serializable接口 hessianOutput.writeObject(obj); } catch (IOException e) { e.printStackTrace(); } return bos.toByteArray(); } @SuppressWarnings("unchecked") @Override public <T> T deserialize(byte[] data, Class<T> clazz) { // 1、將字節數組轉換成字節輸入流 ByteArrayInputStream bis = new ByteArrayInputStream(data); HessianInput hessianInput = new HessianInput(bis); Object object = null; try { object = hessianInput.readObject(); } catch (IOException e) { e.printStackTrace(); } return (T) object; } }