转自:

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/p/16284084.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!