java中Long和Integer缓存-128~127的简介说明

Long类型简介:

    Long 是 对象类型,默认值为null,有最大值和最小值的概念

    Long类型可通过相应的方法longValue转换为long数值

    在日常开发中,Long类型避免和数据库的主键映射,因为他存在null值,可能会产生相应的异常现象

    由于Long是对象类型,所以我们可以使用new的方式定义一个Long类型

Integer类型简介:

    Integer是int的包装类型,默认值为null

    Integer类型可以使用intValue,提取出其中的int值

    我们可以使用new 的方式定义一个Integer类型

下文笔者讲述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类型的源码

    我们可以通过Long类型的valueOf的源码,看出在JVM中缓存着指定范围的数据,

    具体的可查阅以下代码, LongCache...

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间的值"放入到一个缓存数组中

转自:

java中Long和Integer缓存-128~127的简介说明

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值