Long类源码浅析

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]

原文地址:https://www.cnblogs.com/lianliang/p/5753990.html