深入学习java源码之Long.valueOf()与Long.doubleValue()
在Long的源代码中,可以找到LongCache内部类的代码:
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);
}
}
从LongCache的代码可以很容易看出来,在类初始化的时候,便生成了一个final的static的Long类型数组,数组的范围是-128到127。
Long类型的valueOf方法代码如下:
public static Long valueOf(long l) {
final int offset = 128;
if (l >= -128 && l
关注
打赏