`
guirudaoge
  • 浏览: 18805 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Java Integer比较大小

 
阅读更多

Java中Integer大小的比较  == 与 equals的区别

 public static void main(String[] args) {
        Integer a = 127;
        Integer b = 127;
        System.out.println(a==b);
        System.out.println(a.equals(b));
    }

 返回结果为:

        true

        true

public class Main{
    public static void main(String[] args) {
        Integer a = 128;
        Integer b = 128;
        System.out.println(a==b);
        System.out.println(a.equals(b));
    }
}

 返回结果为

         false

         true

 

原因:

       实际上在我们用Integer a = 数字;来赋值的时候Integer这个类是调用的public static Integer valueOf(int i)这个方法。
       查看源码:

      

public static Integer valueOf(int i) {
               final int offset = 128;
               if (i >= -128 && i <= 127) { // must cache 
                     return IntegerCache.cache[i + offset];
               }
               return new Integer(i);
       }

 

     

我们可以发现,当数字不在-128到127之间时,会new出一个对象。这时用 == 进行比较就错了。

 

 

分享到:
评论

相关推荐

    JAVA Integer == equal 比较 doc 比较大小 是否相等

    JAVA 中的 Integer 比较 在 Java 中,我们经常需要比较两个 Integer 对象是否相等,但是在使用 "==" 运算符时,可能会出现一些意外的结果。本文将深入探讨 Java 中的 Integer 比较,了解为什么使用 "==" 运算符可能...

    Java中Integer两种转int方法比较

    这个方法通常在你需要使用`Integer`对象的特性(如缓存、比较操作或泛型方法参数)时使用。 在面试或笔试题中,如题目所示,`a = Integer.parseInt("123")`会将字符串"123"解析为`int`类型的值,并赋给变量a,所以a...

    细数java中Long与Integer比较容易犯的错误总结.docx

    ### Java中Long与Integer比较易犯错误总结 #### 一、引言 在Java编程过程中,经常需要对数值进行比较操作。对于基本数据类型如`int`和`long`,可以直接使用`==`进行比较。然而,当涉及到它们的包装类`Integer`和`...

    JAVA-int和Integer的区别

    此外,`Integer`类还提供了一些实用方法,比如`parseInt()`用于将字符串转换为整数,`toString()`用于将整数转换为字符串,以及`compareTo()`用于比较两个`Integer`对象的大小。 总的来说,`int`适合于需要高性能...

    Java中long类型与Long类型的区别和大小比较详解

    Java中long类型与Long类型的区别和大小比较详解 在Java中,long类型和Long类型都是用于表示数字的数据类型,但是它们之间存在着一定的区别。long类型是基本数据类型,而Long类型是对象类型,本文将通过示例代码详细...

    javaInteger大数据运算.pdf

    1. `BigInteger` 类:这是Java中的一个内置类,位于`java.math`包下,用于表示任意大小的整数。由于Java的`int`、`long`等基本类型都有其数值范围限制,对于超过这些范围的大整数,`BigInteger`提供了一种解决方案。...

    java代码-java实现比较大小

    在Java编程语言中,比较大小是一项基础操作,广泛应用于各种逻辑判断和算法中。这篇教程将深入探讨如何在Java中实现不同类型的比较,包括基本数据类型、对象以及自定义类的比较。 首先,对于Java的基本数据类型,如...

    比较Max and min大小

    本主题将深入探讨如何在Java编程语言中比较两个数值(最大值和最小值)的大小。Java提供了多种方法来执行这种比较,包括基本类型的比较运算符、包装类的compareTo方法以及集合框架中的Comparator接口。 1. **基本...

    JAVA 比较器实例

    当我们需要对非原始类型(如自定义类的对象)进行排序时,由于它们可能没有天然的比较规则(如数字的大小),就需要自定义比较器来实现排序逻辑。 二、Comparator接口 Comparator接口包含一个核心方法:`int ...

    Integer类的使用方法

    - **比较方法**:如`compareTo(Integer anotherInteger)`用于比较两个`Integer`对象的大小。 - **获取值的方法**:如`intValue()`, `longValue()`, `floatValue()`, `doubleValue()`用于获取`Integer`对象的不同数值...

    Java字母加数字组合比较大小

    在Java编程中,比较字母和数字组合的字符串大小是一个常见的需求,特别是在处理用户输入或排序混合类型数据时。本文将详细介绍如何实现此类比较,并提供一个具体的实现示例。 首先,我们要明白,Java中的`String`类...

    java按指定列的数据大小对文本进行文本行排序

    这里使用了`Integer.compare()`方法来确保正确的数字比较,如果列的数据不是整数而是浮点数,可以替换为`Double.compare()`。 最后,我们需要将排序后的结果写入"newData.txt"。Java的`PrintWriter`类适合此任务: ...

    java中Integer包装类装箱的一个细节详解

    这个缓存大小可以通过JVM的启动参数`-Djava.lang.Integer.IntegerCache.high`来调整。默认值是127,但可以通过设置这个参数来扩大或缩小范围,不过设置的值必须大于127,否则会被重置为127以确保缓存有效。 总之,...

    Java源码解析Integer方法解读

    在Java编程语言中,Integer类是int类型的一个包装类,提供了许多方便的静态方法和实例方法来处理整型数据。本文将重点解析Integer类中的一些关键方法,包括toString、toUnsignedString以及highestOneBit。 首先,...

    java中String类型和int类型比较及相互转换

    在Java编程语言中,数据类型的比较与转换是基础但又至关重要的操作,尤其在处理文本与数字信息时。本文将深入探讨Java中String类型和int类型之间的比较方法以及相互转换的技术,这对于理解和优化代码逻辑、提升程序...

    定义比较器,比较数组中值大小

    本文将深入探讨如何定义比较器来比较数组中值的大小,并通过一个具体的示例进行说明。 首先,我们需要了解Java中的Comparator接口。Comparator接口提供了一个方法`compare(T o1, T o2)`,用于比较两个对象的顺序。...

    Java对象的比较方式.doc

    例如,`String`和`Integer`类都实现了`Comparable`接口,因此我们可以直接比较字符串或整数的大小。如果一个类想要实现自然排序,它需要实现`Comparable`接口,并覆盖`compareTo(Object o)`方法。这个方法接收一个...

    Java 9中如何对IntegerCache进行修改详解

    在进行等值比较时,应该优先使用`==`操作符而不是`.equals()`方法,因为对于IntegerCache范围内的对象,`==`能正确地检测到对象是否相等。 总之,虽然IntegerCache提供了一种性能优化的方式,但直接修改它的行为...

    Java 基础.pdf_电子版pdf版

    在Java 8中,Integer缓存池的大小默认为-128到127,这个范围可以通过系统属性"java.lang.Integer.IntegerCache.high"进行调整。 ```java public static Integer valueOf(int i) { if (i &gt;= IntegerCache.low && i ...

    JAVA对象以及数据的工具类

    为了方便处理这些类型,Java提供了一些内置类,如Integer、Double等,它们是原始类型的包装类。包装类提供了许多便利的方法,例如,将字符串转换为对应的数值类型,或者进行数值比较。 在处理对象时,工具类经常...

Global site tag (gtag.js) - Google Analytics