Integer 类在对象中包装了一个基本类型 int 的值。

有一个陷阱存在,经常出现在面试题中,情况如下面代码

public class IntegerDemo {
    public static void main(String[]args){
        Integer a = 200;
        Integer b = 200;
        System.out.println(a==b);//false
        System.out.println(a.equals(b));//true

        //数据在byte范围内,JVM不会从新new对象
        Integer aa = 127;
        Integer bb = 127;
        System.out.println(aa==bb);//true
        System.out.println(aa.equals(bb));//false

        Integer aaa = 128;
        Integer bbb = 128;
        System.out.println(aaa==bbb);//false
        System.out.println(aaa.equals(bbb));//true
    }
}   

在0~127范围内,JVM不会从新分配对象。这时直接比较两个数值相等的对象时,答案为true.

而其他范围内,需要重新创建对象,这时直接比较两个数值相等对象,是在比较两个对象的引用地址,这时答案为false。

Integer陷阱(0~127和其他 数值相等对象比较)的更多相关文章

  1. 编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。

    题目描述 编写一个函数,计算字符串中含有的不同字符的个数.字符在ACSII码范围内(0~127).不在范围内的不作统计. 输入描述: 输入N个字符,字符在ACSII码范围内. 输出描述: 输出范围在( ...

  2. 启动nginx 80端口被占用:tcp 0 0 127.0.0.1:80 127.0.0.1:34932 TIME_WAIT -

    1.启动nginx命令./sbin/nginx 2.提示80端口被占用 nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already ...

  3. ip & 0.0.0.0 & 127.0.0.1 & localhost

    ip & 0.0.0.0 & 127.0.0.1 7 localhost host https://www.howtogeek.com/225487/what-is-the-diffe ...

  4. mytatis将Integer等于0识别成空字符串

    在进行myBatis条件查询的时候,会有如下操作: <if test="delFlag !=null and delFlag != ''"> and t.del_fla ...

  5. C语言实现过滤ASCII在0~127范围内的字符,并去除重复的字符

    #include <stdio.h> #include <string.h> /* 1.以字符串作为参数 2.找出ASCII在1~127范围内的字符 3.去掉重复字符 */ i ...

  6. Integer判断大于 == 127时的坑

    在一次判断返回Interger类型的code,  用==结果, 没进去 Integer的值在-128到127时,Integer对象是在IntegerCache.cache产生,会复用已有对象,也就是说 ...

  7. Integer 使用==判断127和超过128的数据的区别

    Integer封装类型字数据当超过一定长度后,若使用==来判断数否相等,那么判断的结果是false; Integer的范围是超过128就是false. 对于所有封装类而言,建议使用equals来进行判 ...

  8. 数值类对象:NSNumber,NSValue,NSNull

    基本,集合,复杂,对象 可用对象封装基本数值,然后将对象放入NSArray或NSDictionary 中. 用对象封装基本数值后,即可给其发送消息. 数值类型包括:NSNumber,NSValue,N ...

  9. 如何把数值或者对象添加到ArrayList集合

    生成6个1~33之间的随机整数,添加到集合,并遍历 public class ArrayListDemo1 { public static void main(String[] args) { // ...

随机推荐

  1. FZU 2256 迷宫

    https://vjudge.net/problem/FZU-2256 题意:略 思路: 在比赛的时候想到了一次dfs,一次bfs但是样例都过不了...赛后才知道,距离的更新必须同步,不能先把时光机的 ...

  2. maven创建web工程Spring配置文件找不到问题解决方案

    使用maven创建web工程,将Spring配置文件applicationContext.xml放在src/resource下,用eclipse编译时提示class path resource [ap ...

  3. 阿里云服务器怎么运行多个项目(Nginx)

    server { listen 80; server_name yy.test.cn; access_log /data/wwwlogs/access_nginx.log combined; root ...

  4. springMVC 中几种获取request和response的方式

    1.最简单方式:参数 例如: @RequestMapping("/test") @ResponseBody public void saveTest(HttpServletRequ ...

  5. echarts_部分图表配置简介_横向柱状图

    横向柱状图主要配置x位置x轴类型y轴类型(轴的类型分两种 1.category(类别)2.value(值)),代码简单(里面有注释)效果如下: var myChart = echarts.init(d ...

  6. 灵玖软件NLPIRParser智能文本聚类

    随着互联网的迅猛发展,信息的爆炸式增加,信息超载问题变的越来越严重,信息的更新率也越来越高,用户在信息海洋里查找信息就像大海捞针一样.搜索引擎服务应运而生,在一定程度上满足了用户查找信息的需要.然而互 ...

  7. create pfile from spfile;

    sql>create pfile from spfile; 生成的文件在$ORACLE_HOME/dbs/下边    和spfile在同一个目录下 但是名字已经变成了init$oracle_si ...

  8. Windows10系统PHP开发环境配置

    Windows下搭建(Apache+PHP+MySQL)=>WAMP Linux下搭建(Apache+PHP+MySQL) =>LAMP PHP开发环境配置一般有套件安装和自定义安装两种方 ...

  9. No simulation input file assignm…

    QuartusII中仿真时出现No simulation input file assignment specified on simulator page of the settings dialo ...

  10. CVE-2016-3714 - ImageMagick 命令执行

    ImageMagick是一款使用量很广的图片处理程序,很多厂商都调用了这个程序进行图片处理,包括图片的伸缩.切割.水印.格式转换等等.但近来有研究者发现,当用户传入一个包含『畸形内容』的图片的时候,就 ...