Java中Integer类型的整数值的大小比较

您所在的位置:网站首页 int和long比较大小工具类 Java中Integer类型的整数值的大小比较

Java中Integer类型的整数值的大小比较

2024-07-14 14:44| 来源: 网络整理| 查看: 265

 

       如果比较两个数值相等的Integer类型的整数,我们可能会发现,用“==”比较(首先你必须明确“==”比较的是地址),有的时候返回true,而有的时候,返回false。比如:

Integer i = 128; Integer j = 128; System.out.println(i == j);//返回false

然而:

Integer m = 127; Integer n = 127; System.out.println(m == n);//返回true

为什么会出现这种请况呢,因为Integer i = 128;这种方式赋值,会调用valueOf方法。我们发现这里做了一些关于IntegerCache的操作。让我们先看下valueOf的源码:

     这里补充一下assert(断言)的用法:(

assert格式

(1)assert [boolean 表达式]

如果[boolean表达式]为true,则程序继续执行。

如果为false,则程序抛出AssertionError,并终止执行。

(2)assert[boolean 表达式 : 错误表达式 (日志)]

如果[boolean表达式]为true,则程序继续执行。

如果为false,则程序抛出java.lang.AssertionError,输出[错误信息]。

public static Integer valueOf(int i) { assert IntegerCache.high >= 127; if (i >= IntegerCache.low && i = -128 && l = -128 && sAsInt


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3