首页 > 编程语言 >java integer == integer返回 true 还是 false?

java integer == integer返回 true 还是 false?

时间:2023-03-31 17:56:08浏览次数:39  
标签:false java Integer System 127 128 integer true out

理论:

IntegerCache 缓存
JAVA的Integer有IntegerCache会缓存-128~127之间的对象。
如:Integer x = 100,会调用Integer的valueOf()方法,这个方法就是返回一个Integer对象,但是在返回前,作了一个判断,判断要赋给对象的值是否在[-128,127]区间中,且IntegerCache(是Integer类的内部类,里面有一个Integer对象数组,用于存放已经存在的且范围在[-128,127]中的对象)中是否存在此对象,如果存在,则直接返回引用,否则,创建一个新对象返回。

 

实践:

        Integer a=2;
            Integer b=2;
            System.out.println(a==b);
            Integer c=18;
            Integer d=18;
            System.out.println(c==d);
            Integer e=127;
            Integer f=127;
            System.out.println(e==f);
            Integer g=128;
            Integer h=128;
            System.out.println(g==h);
            Integer i=3;
            Integer j=3;
            System.out.println(i==j);

得出
true
true
true
false
true 

 

结论

在 [-128,127]区间中 进行匹配用==  是可以的,超过了就会false,可以改成  .equals()   就可以了

 

标签:false,java,Integer,System,127,128,integer,true,out
From: https://www.cnblogs.com/wdw31210/p/17277057.html

相关文章

  • 记录使用mybatis时踩到的坑-integer类型数据为0时,会判断为:等于空字符串为true
    因为做查询操作时,需要设置为传入参数值才进行查询,于是判断条件是:status!=nullandstatus!=''即mapper层的写法:<iftest="status!=nullandstatus!=''">andstatus=#{status}</if> 但设计表时,默认status=0表示正常状态,status=1表示其他状态。当传入status=0进......
  • 【Java】删除String数组中的所有空值
    1、封装一个方法/****去除String数组中的空值*/privateString[]deleteArrayNull(Stringstring[]){StringstrArr[]=string;//step1:定义一个list列表,并循环赋值ArrayList<String>strList=newArrayList<String>();......
  • JavaFx 行间距 margin
    自己边尝试边摸索,间距都调不了,气的呀。如有不足,请指正!spacing相当于margin-topmargin-bottomenvBox.setSpacing(20);insets能设置上下左右间距btn1.setOpaqueInsets(newInsets(0,10,0,0));vgap="10"上下间距hgap="10"左右间距 ......
  • 系统化学习前端之JavaScript(ES6)
    前言ES6同样是ECMAScript的拓展,发布于2015年,目前多数浏览器对于部分ES6更新内容不支持,通常需要借助bable编译器编译成ES5或者ECMAScript早期版本语法去执行。ES6的学习推荐阮一峰老师的ES6教程。ES6ES6是ECMAScript最近一次较大版本的更新,更新内容主要是一......
  • 重学Java设计模式-结构型模式-享元模式
    重学Java设计模式-结构型模式-享元模式内容摘自:https://bugstack.cn/md/develop/design-pattern/2020-06-14-重学Java设计模式《实战享元模式》.html#重学-java-设计模式-实战享元模式「基于redis秒杀-提供活动与库存信息查询场景」享元模式介绍图片来自:https://refactorin......
  • 一文搞懂Java异常处理
    一、什么是异常处理在Java编程中,异常处理是一种机制,用于处理程序运行时可能出现的异常情况。当程序出现异常时,程序会抛出一个异常对象,如果不加以处理,程序就会终止运行。因此,我们需要使用异常处理机制来捕获并处理这些异常,以使程序能够在出现异常时继续运行。在Java中,异常处理主要......
  • Java计算百分比
    代码如下publicstaticvoidmain(String[]args){floatnum=3.14f;inttotal=10;//创建一个数值格式化对象java.text.NumberFormatnumberformat=java.text.NumberFormat.getInstance();//设置精确到小数点后2位......
  • 错题一:java中的值传递与引用传递
    考察的知识点:在java中,原始数据类型的传递都是值传递,传递的是值的副本,形参改变对实参没有影响;引用传递传递的是引用类型数据(传递的是内存地址),如String、Map、类对象等,因此形参发生变化实参也会随之变化。原始题目:classValue{publicinti=15;}publicclassTest{pu......
  • Mac 上启动nacos 出现异常java.lang.IllegalArgumentException: the length of secret
    这个异常提示是因为Nacos的配置中加密相关的参数未正确填写所导致的。我们只需要找到nacos/conf/application.properties文件,然后给nacos.core.auth.plugin.nacos.token.secret.key这个属性配置一个大于32位的随机字符串即可这个字符串大家可以在jwt的官网去生成:https://jwt.......
  • 用jvisualvm监控远程java程序
    jvisualvm是一个JDK自带的java性能监控程序。对于本地监控,直接启动jvisualvm,在它面板里面就可以看到所有在运行的java程序。但是如果要监控在别的机器上运行的java程序,那么运行的时候要多加几个参数(假设我们的类名字叫Hello):java-Dcom.sun.management.jmxremote-Dcom.sun.man......