Kryo对象线程不安全,但是能加快序列化和反序列的速度*
public final class KryoSerializeUtil {
/**Kryo对象线程不安全,但是能加快序列化和反序列的速度*/
static private final ThreadLocal<Kryo> tLocal = new ThreadLocal<Kryo>() {
protected Kryo initialValue() {
Kryo kryo = new Kryo();
kryo.setRegistrationRequired(false);
return kryo;
};
};
## /**(1)将java对象序列化为字节码对象*/
public static byte[] serialize(Object obj) {
Kryo kryo=tLocal.get();
//2.1构建流对象(Java中默认是使用ObjectOutputStream)
ByteArrayOutputStream bos=new ByteArrayOutputStream();
Output output=new Output(bos);
//2.2对象序列化
kryo.writeClassAndObject(output, obj);
//2.3释放资源
output.close();
return bos.toByteArray();
};
## /**(2)将字节码对象序列化为java对象*/
public static Object deserialize(byte[] array) {
Kryo kryo=tLocal.get();
//2.1构建流对象
Input input=new Input(new ByteArrayInputStream(array));
//2.2对象反序列化
Object obj=kryo.readClassAndObject(input);
//2.3释放资源
input.close();
return obj;
};
}