Java中Integer类型的整数值的大小比较 |
您所在的位置:网站首页 › int和long比较大小工具类 › Java中Integer类型的整数值的大小比较 |
如果比较两个数值相等的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 |