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:falseLong类型的源码
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间的值"放入到一个缓存数组中
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。