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

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

转自:

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

Integer:

Integer 数据类型是java中int的包装类型

Integer 一个整型数据用来存储整数,整数包括正整数,负整数和零。
整型常量采用十进制整数表示。如 1991,0,-123等等都是整型常量。而52.0或131.4都不是整型常量。
Integer 变量存储为最接近编译环境的长度,例如在32位的编译环境下,Integer为32位,其范围为 -2^15 到 2^15-1 之间

Long:

是java中的基础类型,用于存储数值

这两种类型也是我们日常开发中,常用的数据类型,那么他们之间如何进行互相转换呢?下文笔者将一一道来,如下所示

下文笔者讲述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间的值"放入到一个缓存数组中

文章来源:https://www.cnblogs.com/java265/archive/2022/06/21/16284084.html

本文经用户投稿或网站收集转载,如有侵权请联系本站。

发表评论

0条回复