`
xutao5641745
  • 浏览: 223679 次
  • 性别: Icon_minigender_1
  • 来自: 汨罗
社区版块
存档分类
最新评论

2个Integer作比较时,需要注意的地方

 
阅读更多

今天受打击了,一同事问了我一个问题,,,我当场就肯定的说:答案  T  T啊。。还用的着想?

 

可是当我把它们Copy运行时,才发现,结果显示的与我预想的不一想。。。

 

 

Integer i1 = 127;
        Integer i2 = 127; 
        System.out.println(i1==i2);
        Integer i3 = 128;
        Integer i4 = 128; 
        System.out.println(i3==i4);

 

 

后来那同事跟我解释了一下,我觉得挺好,这也是我们很容易忽视的地方,所以贴出来了;

 

 

 

原因是:

 

在自动装箱时对于值从–128到127之间的值,它们被装箱为Integer对象后,会存在内存中被重用,超出范围就每次创建

分享到:
评论

相关推荐

    PKCS7签名的ASN1格式

    可使用此格式,通过ASN1C生成完整的PKCS7签名C语言代码,实现诸如SM2算法数字...因此相应的在生成的C代码中,凡涉及到CertificateSerialNumber类型的地方,都还需要将其TAG从4<<2(OCTET STRING)改回成2<<2(INTEGER)

    powerbuilder

    需要注意的是,使用PrintOpen()函数打开打印作业、使用同组的其它函数完成打印任务后,必须使用PrintClose()关闭打印作业,或根据需要使用PrintCancel()函数取消打印作业。 ------------------------------------...

    MFC多窗口例程

    按照相同方法建立第二个新对话框,类名“CSubClass2”,Caption为“关卡选择”。 在上面画一个Edit和一个Spin,注意先画Edit后画Spin,将Spin的Auto buddy和Set buddy integer勾上。 按Ctrl+W打开ClassWizard,为...

    Delphi多线程编程之三 同步读写全局数据

    这个清除过程必须放在线程执行完后的地方,比如FormDesroy事件中。上面的例子中,若把该过程放在TMyThread.Create(False);后,会产生错误。 二、互斥: 互斥非常类似于临界区,除了两个关键的区别:首先,互斥...

    C语言程序设计标准教程

    使用printf函数时还要注意一个问题, 那就是输出表列中的求值顺序。不同的编译系统不一定相同,可以从左到右, 也可从右到左。Turbo C是按从右到左进行的。如把例2.13改写如下述形式: void main(){ int i=8; printf...

    超级有影响力霸气的Java面试题大全文档

    最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概...

    《你必须知道的495个C语言问题》

    3.18 需要根据条件把一个复杂的表达式赋给两个变量中的一个。可以用下面这样的代码吗?((condition) ? a : b)= complicated_expression; 41  3.19 我有些代码包含这样的表达式。a ? b=c : d 有些编译器可以接受...

    DWR.xml配置文件说明书(含源码)

    这里有两个地方需要注意: 仅仅通过反射方法没有办法知道集合元素中的类型,所以上面的两个converter能将任何集合转换成相对javascript而言有意义的对象.然而没有办法将不同的集合类类型分别采用不同的转换方法.因为...

    java 面试题 总结

    最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多个线程访问Hashtable时,不需要自己为它的方法实现同步,而HashMap 就必须为之提供外同步。 Hashtable和HashMap采用的hash/rehash算法都大概...

    在同步代码结束后,使用ReleaseMutex(THandle

    这个清除过程必须放在线程执行完后的地方,比如FormDesroy事件中。上面的例子中,若把该过程放在TMyThread.Create(False);后,会产生错误。 二、互斥: 互斥非常类似于临界区,除了两个关键的区别:首先,互斥...

    JSTL详细标签库介绍

    <!...<HTML><HEAD>关于java异常处理(讲义)--JSP中文网 ...第二步:处理对象与方法:声明4个GUI组件对象和1个用于存储计算结果(double)的和2个被除数与除数基本类型(int)<BR><BR>A、 初始化对象方法init()<BR>B...

    DELPHI Variant变量的使用技巧

    更糟糕的是:你还可以用variant变量计算数值,从第二个按钮的Click事件代码就可看到这一点: procedure TForm1.Button2Click(Sender: TObject); var V: Variant; N: Integer; begin V := Edit1.Text; N := ...

    jpivot学习总结.doc

    当一个 Dimension 有多个 Hierarchy 时,注意 name 值要唯一。 hasAll 布尔型的 , 决定是否包含全部的成员 member allMemberName 所有成员的名字 , 也就是总的标题 , 例如: allMemberName= “全部产品” ...

    grub4dos-V0.4.6a-2017-02-04更新

    执行时可以不用输入扩展名,比如输入test如果当前路径下有一个test.g4b就会自动使用。 2013-10-17 1.修改代码支持新版HOTKEY。 2013-07-10 1.insmod现在支持长文件名(以前最多11个字符,现在没有限制). 2....

    语言程序设计课后习题答案

    其缺点是它表示数的容量较小,表示同一个数,二进制较其他进制需要更多的位数。 1-9 请将以下十进制数值转换为二进制和十六进制补码: (1)2 (2)9 (3)93 (4)-32 (5)65535 (6)-1 解: (1) (2)10 = ...

    Python函数参数类型*、**的区别

    所以本文是一篇学习笔记,着重于使用的细节和理解上,首先分别介绍了函数各种参数类型在调用和声明时的区别,及其在混用时需要注意的一些细节,之后讲了闭包相关的内容。如果有不对的地方欢迎指正。 函数参数不带“*...

    Java 高级特性.doc

    虽然它听起来似乎会屏蔽潜在的错误,但实际上它将提高代码安全性,因为它将防止您对警告无动于衷 — 您看到的每一个警告都将值得注意。 由如下代码引出@Override的讲解: User类中的方法: public boolean equals...

    java计算器程序.doc

    java 编写计算器的简单程序//一个较为简洁的巧妙的计算器程序, import java.io.*; import java.awt.event.*; import java.awt.*; //需要解决的问题,数学的运算都有正负号的出现,在点击等号的时候就会有冲突,...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    日期类型 date 7字节 用于存储表中的日期和时间数据,取值范围是公元前4712年1月1日至公元9999年12月31日,7个字节分别表示世纪、年、月、日、时、分和秒 二进制数据类型 row 1~2000字节 可变长二进制数据,在具体...

    JDK 1.5的泛型實現(Generics in JDK 1.5)

    generic algorithms時並不需要以角括號( )為「參 數化型別」做任何具體指定。這種泛型語法自 JDK1.3+GJ以來不曾改變過。 String str = Collections.max(strList); //strList見前例(圖 1) Collections....

Global site tag (gtag.js) - Google Analytics