### JavaDeserializer#getParamArg 
<img width="515" alt="1" src="https://user-images.githubusercontent.com/6971152/35181255-599cce00-fdf9-11e7-95b4-7d29314161be.png">
for values that between -128 ~ 127 , autoboxing or call valueOf() is more efficient than using consctrutor , and use less memory .

reference blog :
http://blog.csdn.net/qq_27093465/article/details/52473649

ways to change : change to  autoboxing  or  Xxx.valueOf(0);

### below is the change : 
```java
protected static Object getParamArg(Class cl) {
    if (!cl.isPrimitive())
        return null;
    else if (boolean.class.equals(cl))
        return Boolean.FALSE;
    else if (byte.class.equals(cl))
        return 0;
    else if (short.class.equals(cl))
        return 0;
    else if (char.class.equals(cl))
        return 0;
    else if (int.class.equals(cl))
        return 0;
    else if (long.class.equals(cl))
        return 0L;
    else if (float.class.equals(cl))
        return 0F;
    else if (double.class.equals(cl))
        return 0D;
    else
        throw new UnsupportedOperationException();
}
```




private static final Logger log
        = Logger.getLogger(JavaDeserializer.class.getName());
    private Class _type;
    private HashMap _fieldMap;
    private Method _readResolve;
    private Constructor _constructor;
    private Object[] _constructorArgs;
    public JavaDeserializer(Class cl) {
        _type = cl;
        _fieldMap = getFieldMap(cl);
        _readResolve = getReadResolve(cl);
        if (_readResolve != null) {
            _readResolve.setAccessible(true);
        }
        Constructor[] constructors = cl.getDeclaredConstructors();
        long bestCost = Long.MAX_VALUE;
        for (int i = 0; i < constructors.length; i++) {
            Class[] param = constructors[i].getParameterTypes();
            long cost = 0;
            for (int j = 0; j < param.length; j++) {
                cost = 4 * cost;
                if (Object.class.equals(param[j]))
                    cost += 1;
                else if (String.class.equals(param[j]))
                    cost += 2;
                else if (int.class.equals(param[j]))
                    cost += 3;
                else if (long.class.equals(param[j]))