java中Long和Integer缓存-128~127的简介说明
下文笔者讲述Java中Long和Integer缓存的简介说明,如下所示:
先判断下下面代码的输出结果
1:----------------------------------------------
Long a = Long.valueOf(127);
Long b = Long.valueOf(127);
System.out.println(a == b);
2:---------------------------------------------------
Long a = Long.valueOf(128);
Long b = Long.valueOf(128);
System.out.println(a == b);
--------------------------------------------------------
1:true
2:false
Long类型的源码
public static Long valueOf(long l) {
final int offset = 128;
if (l >= -128 && l <= 127) { // will cache
return LongCache.cache[(int)l + offset];
}
return new Long(l);
}
private static class LongCache {
private LongCache(){}
static final Long cache[] = new Long[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Long(i - 128);
}
}
从以上代码上,我们可以看出
"-128到127间的值"放入到一个缓存数组中
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


