1、Long类和Integer相类似,都是基本类型的包装类,类中的方法大部分都是类似的;
关于Integer类的浅析可以参看:Integer类源码浅析
2、这里主要介绍一下LongCache类,该缓存类比Integer的缓存类,实现更简单
1 private static class LongCache { 2 private LongCache(){} 3 4 static final Long cache[] = new Long[-(-128) + 127 + 1]; 5 6 static { 7 for(int i = 0; i < cache.length; i++) 8 cache[i] = new Long(i - 128); 9 } 10 }
LongCache类缓存的大小不能更改了,这个大小已经固定了256;
1 @Test 2 public void coreLong(){ 3 //定义方法内部类 4 class LongCacheTest { 5 Long cache[] = new Long[-(-128) + 127 + 1]; 6 7 public LongCacheTest(){ 8 for(int i = 0; i < cache.length; i++) 9 cache[i] = new Long(i - 128); 10 } 11 } 12 13 System.out.println(Arrays.toString(new LongCacheTest().cache)); 14 }
输出结果:[-128 ~ 127]