编程语言
首页 > 编程语言> > java中Long和Integer缓存-128~127的简介说明

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

作者:互联网

转自:

    http://www.java265.com/JavaJingYan/202205/16528451213416.html

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类型的源码

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,int,valueOf,Long,128,127,类型,Integer
来源: https://www.cnblogs.com/java265/p/16434898.html