`

Interger的范围

 
阅读更多
这种问题有点钻牛角尖,但相信想把JAVA学好学透的人都会喜欢。

public class Test {
    public static void main(String[] args) {
        Integer i1 = 100;
        Integer i2 = 100;
        if (i1 == i2) {
            System.out.println("i1==i2");
        } else {
            System.out.println("i1!=i2");
        }
        Integer i3 = 200;
        Integer i4 = 200;
        if (i3 == i4) {
            System.out.println("i3==i4");
        } else {
            System.out.println("i3!=i4");
        }
    }
}

结果:
i1==i2
i3!=i4

这是为什么?
答案为白色,选中查看:
在用Integer比较的时候是会分两种情况的,当取值在-128~127之间时,是用原生数据类型,也就是int去作比较,除此之外都是用Integer,也就是比较它们的地址,所以才得出了以上的结果!
 
 
 
分享到:
评论

相关推荐

    将 BigDecimal 类型转换为 Integer 类型.pdf

    在这种情况下,直接转换为 Integer 不可行,因为值超出了 Integer 的表示范围。 3. **使用 BigInteger 解决问题** 当需要处理超过 Integer 范围的大整数时,Java 中的 BigInteger 类可以派上用场。BigInteger 类...

    关于各数据类型取值范围

    数据类型取值范围详解 在程序设计中,数据类型是指变量或表达式的分类,它决定了变量或表达式的取值范围、存储空间和参与运算的规则。不同的数据类型具有不同的取值范围和存储空间,本文将对各种数据类型的取值范围...

    bigdecimal转integer.docx

    - `intValue()` 方法简单快捷,但不适用于可能超出 `Integer` 范围的 `BigDecimal` 值。 - `setScale()` 和 `intValueExact()` 结合使用可以确保转换的准确性,但可能会抛出异常,需要捕获处理。 - `setScale()` 和 ...

    JAVA-int和Integer的区别

    `Integer`的范围比`int`大,它可以存储-2^31到2^31-1之间的整数,以及两个特殊值:`Integer.MIN_VALUE`和`Integer.MAX_VALUE`。 两者之间的转换是常见的操作。将`int`转换为`Integer`称为装箱(Boxing),Java自动...

    pls_interger 和binary_integer的区别与多种数据类型说明

    定义方式为 NUMBER(P,S),P 是精度,最大 38 位,S 是刻度范围, 可以在 -84...127 间取值。例如:NUMBER(5, 2) 可以用来存储 -999.99...999.99 间的数值。 * PLS_INTEGER:描述整数值,用于调用外部过程时的转换...

    JAVA中Integer值的范围实例代码

    JAVA 中 Integer 值的范围实例代码解析 在 Java 中,Integer 是一个非常重要的类,用于表示整数值。然而,Integer 的值范围是有限制的,这篇文章将会详细介绍 Java 中 Integer 值的范围实例代码。 首先,让我们来...

    mybatis逆向工具generator,中文注释,Byte改Integer

    `Byte`占用一个字节(8位),取值范围为-128到127,而`Integer`则占用四个字节(32位),取值范围大大扩展至-2^31到2^31-1。在实际开发中,如果数据库字段的数值范围远超`Byte`的承载能力,选择`Integer`会更为合适...

    pascal基本数据类型介绍及表达式运算(pascal程序语言基础).ppt

    整型中,Shortint范围是-128到127,Integer范围是-32768到32767,Longint范围是-2^31到2^31-1。实型则有不同精度,Real是6位有效数字,Single是7位,Double是15位,Extended是19位。Char类型用于表示单个字符,如...

    AccessVBA程序设计基础学习教案.pptx

    Byte用于存储0到255之间的整数,Integer范围在-32,768到32,767,Long则可容纳更大范围的整数。Boolean类型表示逻辑值,True和False。Currency用于货币值,范围从-922,337,203,685.4775到922,337,203,685.4775。...

    php手册笔记.doc

    同样,如果执行的运算结果超出了 integer 范围,也会返回 float。 7.数组 在 PHP 中,数组可以使用 `array()` 函数来创建。数组的键可以是整数或字符串,值可以是任意类型的值。需要注意的是,key 中的浮点数被...

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

    在 Java 中,Integer 对象在 -128 到 127 之间的值是缓存的,这意味着在这个范围内的所有 Integer 对象都是同一个对象引用。因此,当我们创建两个 Integer 对象,并将它们的值设置在这个范围内时,它们将引用的是同...

    ch2(程序设计基础).ppt

    Integer范围为-32,768至32,767,Long范围为-2,147,483,648至2,147,483,647,而Byte则表示0到255的无符号整数。 2. **浮点型**:包括Single和Double,用于存储浮点数。Single的有效数字有7位,而Double有15位,因此...

    vb编程入门简单易懂PPT学习教案.pptx

    - 整数型用于存储整数,Integer范围为-32768到32767,Long则更大,范围为-2^31到2^31-1。 - 单精度型(Single)和双精度型(Double)用于存储浮点数,其中Double的精度更高,适合需要高精度计算的情况。 - 货币型...

    Integer programming

    整数规划作为优化领域的一个重要分支,其应用范围广泛且效果显著。《应用整数规划:建模与求解》这本书不仅提供了理论基础,还包含了丰富的实际案例分析,对于希望深入学习这一领域的读者来说是非常宝贵的学习资料。...

    JAVA-int和Integer的区别1.zip

    这意味着在这个范围内创建`Integer`对象时,如果已有相同的值存在,就会复用已存在的对象,避免了重复的内存分配。这个特性在处理大量小整数时能提高效率,但也可能导致预期之外的行为,如两个不同的`Integer`引用...

    浙江省高中信息技术学考VB知识点归纳.doc

    Integer范围为-32768至+32767,Long为-2147483648至+2147483647,Single和Double则分别表示单精度和双精度浮点数,String用于存储文本,Boolean为逻辑型,Byte的取值范围是0至255。 常量分为直接常量和符号常量,...

    MAXScript零起点系列教程2

    - 尝试输入超出Integer范围的数值,观察如何自动转换为float类型。 - 测试字符串"cgplusplus"与未加双引号的cgplusplus的区别,理解字符串的正确格式。 - 探索时间类型的不同表达方式,如2.5s、1m15s等,理解其含义...

    convert string to integer

    - 数值溢出:如果字符串表示的数值超出了整型数据类型的范围,转换可能会失败或产生未定义的行为。 了解了不同语言中字符串转整数的基本方法后,我们可以结合源码和工具来优化或扩展这个功能,比如添加自定义的校验...

    VB二级考试复习资料

    - 整型(Integer和Long):存储整数,Integer范围通常是-32,768到32,767,Long则更大。 - 浮点型(Single和Double):Single存储单精度浮点数,Double存储双精度浮点数,提供更高的精度。 - 货币型(Currency):用于...

    Huge Integer

    在编程领域,当我们需要处理超出常规整型变量(如C++中的`int`或`long long`)范围的大整数时,我们通常会使用大整数(Huge Integer)的概念。大整数库或者算法允许我们对非常大的数值进行算术运算,包括加法、减法...

Global site tag (gtag.js) - Google Analytics