1、第一种是序列化对象到byte[],具体代码示例如下:
1.1 要序列化的对象类Simple.java:
package kryoserializabletest;
import java.io.Serializable;
import java.util.Map;
/**
* Created by 0262000099 on 2018/9/6.
*/
public class Simple implements Serializable{
private static final long serialVersionUID = -4914434736682797743L;
private String name;
private int age;
private Map<String,Integer> map;
public Simple(){
}
public Simple(String name, int age, Map<String,Integer> map){
this.name = name;
this.age = age;
this.map = map;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Map<String, Integer> getMap() {
return map;
}
public void setMap(Map<String, Integer> map) {
this.map = map;
}
}
1.2 测试类KryoSerializableTest.java:
package kryoserializabletest;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
import org.objenesis.strategy.StdInstantiatorStrategy;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
/**
* Created by 0262000099 on 2018/9/7.
*/
public class KryoSerializableTest {
public static byte[] serializeObject(Simple simple) throws IOException {
Kryo kryo = new Kryo();
kryo.setReferences(false);
kryo.setRegistrationRequired(false);
kryo.setInstantiatorStrategy(new StdInstantiatorStrategy());
kryo.register(Simple.class);
byte[] bytes;
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
Output output = new Output(byteArrayOutputStream, 100000000);
Map<String,Integer> map = new HashMap<String, Integer>();
for (int i = 0; i < 1000000; i++) {
map.put("zhang0", i);
map.put("zhan