文档章节

Integer ==

两条鱼儿
 两条鱼儿
发布于 2017/04/23 13:15
字数 332
阅读 11
收藏 0

相等判断

关于 == 的运行结果,只要我们记住一条:他比较的是引用(地址) 就好了,按照这个来分析结果

当且仅当比较的两个引用指向同一对象才返回true

举例:

Integer  ==

代码举例:

Integer a = 127;
Integer b = 127;
Integer c = 128;
Integer d = 128;
Integer e = new Integer(100);//这种最好直接换成 Integer e = 100;
Integer f = new Integer(100);
System.out.println(a == b);
System.out.println(c == d);
System.out.println(e == f);

运行结果

true
false
false

    看看Integer 的源代码就知道了,其实就是Integer 把-127-128 之间的每个值都建立了一个对应的Integer 对象,类似一个缓存。由于Integer 是不可变类,因此这些缓存的Integer 对象可以安全的重复使用。

    Integer i = XXX ,就是Integer i = Interger.valueOf(XXX), 首先判断XXX 是否在-127-127 之间,如果是直接return 已经存在的对象,否则就只能new 一个了。

public static Integer valueOf(int i) {
    assert IntegerCache.high >= 127;
    if (i >= IntegerCache.low && i <= IntegerCache.high)
        return IntegerCache.cache[i + (-IntegerCache.low)];
    return new Integer(i);
}
private static class IntegerCache {
    static final int low = -128;
    static final int high;
    static final Integer cache[];
    static {
        // high value may be configured by property
        int h = 127;
        String integerCacheHighPropValue =
                sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
        if (integerCacheHighPropValue != null) {
            int i = parseInt(integerCacheHighPropValue);
            i = Math.max(i, 127);
            // Maximum array size is Integer.MAX_VALUE
            h = Math.min(i, Integer.MAX_VALUE - (-low) -1);
        }
        high = h;
        cache = new Integer[(high - low) + 1];
        int j = low;
        for(int k = 0; k < cache.length; k++)
            cache[k] = new Integer(j++);
    }
    private IntegerCache() {}
}

 

本文转载自:http://mutouloveqi.iteye.com/blog/524885

两条鱼儿
粉丝 0
博文 3
码字总数 953
作品 0
广州
程序员
私信 提问
libxml2 node type预定义常量

预定义常量 以下常量由本扩展模块定义,因此只有在本扩展模块被编译到 PHP 中,或者在运行时被动态加载后才有效。 XML constants Constant Value Description XML_ELEMENT_NODE (integer) 1 ...

长平狐
2012/09/03
80
0
hrProcessorLoad计算cpu使用率

HOST-RESOURCES-MIB::hrProcessorLoad.1 = INTEGER: 23 HOST-RESOURCES-MIB::hrProcessorLoad.2 = INTEGER: 16 HOST-RESOURCES-MIB::hrProcessorLoad.3 = INTEGER: 22 HOST-RESOURCES-MIB::h......

lee_ypp
2016/03/14
990
0
为什么有时候object能强转成Integer,有时候不行,如何避免此问题

问题来源:有时我们用Map map方式传参,当我们要对参数进行操作时会发现,有时候object能强转成Integer,有时候不行。 举例: public class Show { public static void main(String[] args) t...

迷雾中行走
2018/01/23
0
0
Integer与Integer,int与Integer能不能直接进行关系运算

1.问题:Integer与Integer,int与Integer能不能直接进行==,!=,<,>,<=,>=等的运行? 2.结论是:部分可以,所以要进行这些关系运算时建议都转换成int型进行运算。 3.分析: 前言:我们都知道I...

迷雾中行走
2018/01/14
0
0
mybatis解决批量更新阻塞

这是mybatis批量更新的两种写法,第二种采用的是mysql的语法 UPDATE test set username=#{item.username}, password=#{item.password}, ut=#{item.ut}, ct=#{item.ct} where id=#{item.id} u......

drdongshiye
2018/04/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rsync工具常用选项以及同步的两种方式

rsync -av /etc/passwd /tmp/1.txt #rsync的本机传输写法 rsync -av /tmp/1.txt 192.168.188.128:/tmp/2.txt #rsync的远程传输rsync格式rsync [OPTION] … SRC ......

林怡丰
今天
3
0
GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238

GatewayWorker 报错:stream_socket_server(): unable to connect to tcp://0.0.0.0:1238 (Address already in use) 官方文档虽然有相同的问题,但是对我的问题没起作用…… 后面发现自己手贱...

wenzhizhong
昨天
3
0
REST接口

文章来源 https://zhuanlan.zhihu.com/p/28674721?group_id=886181549958119424 http://www.ruanyifeng.com/blog/2014/05/restful_api.html REST 对请求的约定 REST 用来规范应用如何在 HTTP......

Airship
昨天
5
0
Spring Cloud Config 统一配置中心

Spring Cloud Config 统一配置中心 一、统一配置中心 统一管理配置 通常,我们会使用配置文件来管理应用的配置。如一个 Spring Boot 的应用,可以将配置信息放在 application.yml 文件中,如...

非摩尔根
昨天
6
0
android ------ AAPT2 error: check logs for details解决方法

AAPT 是全称是 Android Asset Packaging Tool,它是构建 App,甚至是构建 Android 系统都必不可少的一个工具。它的作用是将所有资源文件压缩打包到Android APK 当中。我们在 Android SDK 目录...

切切歆语
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部