Integer.toString(int i, int radix) 将i转成radix进制字符串,这个方法使用了 Integer.digits数组,精髓在这里while (i <= -radix) { buf[charPos--] = digits[-(i % radix)]; i = i / radix; }, 可以使用这个方法将长的十进制id转换成长度较短的36进制id,发挥你的想象
publicstatic Integer valueOf(int i){if(i >= IntegerCache.low && i <= IntegerCache.high)return IntegerCache.cache[i +(-IntegerCache.low)];returnnewInteger(i);}privatestaticclassIntegerCache{staticfinalint low =-128;staticfinalint high;staticfinal Integer cache[];static{// high value may be configured by propertyint h =127;
String integerCacheHighPropValue =
sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");if(integerCacheHighPropValue != null){try{int i =parseInt(integerCacheHighPropValue);
i = Math.max(i,127);// Maximum array size is Integer.MAX_VALUE
h = Math.min(i, Integer.MAX_VALUE -(-low)-1);}catch( NumberFormatException nfe){// If the property cannot be parsed into an int, ignore it.}}
high = h;
cache =newInteger[(high - low)+1];int j = low;for(int k =0; k < cache.length; k++)
cache[k]=newInteger(j++);// range [-128, 127] must be interned (JLS7 5.1.7)assert IntegerCache.high >=127;}privateIntegerCache(){}}