首先,==有很多限制,如Integer 类型的值在[-128,127] 期间,Integer 用 “==”是可以的(参考),超过范围则不行,那么使用equal则代替则完全ok

  1. public static void main(String[] args) {
  2. Long prop=4004L;
  3. Long prop1=4004l;
  4. Integer prop2=4004;
  5.  
  6. Integer prop3=4004;
  7. if(prop2.equals(prop3)){
  8. System.out.println("hi");
  9. }else if(prop2==prop3){
  10. System.out.println("wrong");
  11. }
  12.  
  13. if(prop1.equals(prop2.longValue())){
  14. System.out.println("helloworld");
  15. }else if(prop==prop1){
  16. System.out.println("you are wrong!");
  17. }

返回结果

  1. hi
  2. helloworld

上面的示例说明使用"=="和equal还是有不小的区别的,equal可以替代==

Long源码如下:

  1. /**
  2. * Compares this object to the specified object. The result is
  3. * <code>true</code> if and only if the argument is not
  4. * <code>null</code> and is a <code>Long</code> object that
  5. * contains the same <code>long</code> value as this object.
  6. *
  7. * @param obj the object to compare with.
  8. * @return <code>true</code> if the objects are the same;
  9. * <code>false</code> otherwise.
  10. */
  11. public boolean equals(Object obj) {
  12. if (obj instanceof Long) {
  13. return value == ((Long)obj).longValue();
  14. }
  15. return false;
  16. }

Integer源码如下:

  1. /**
  2. * Compares this object to the specified object. The result is
  3. * <code>true</code> if and only if the argument is not
  4. * <code>null</code> and is an <code>Integer</code> object that
  5. * contains the same <code>int</code> value as this object.
  6. *
  7. * @param obj the object to compare with.
  8. * @return <code>true</code> if the objects are the same;
  9. * <code>false</code> otherwise.
  10. */
  11. public boolean equals(Object obj) {
  12. if (obj instanceof Integer) {
  13. return value == ((Integer)obj).intValue();
  14. }
  15. return false;
  16. }

Int,Long比较重使用equal替换==的更多相关文章

  1. WebSocket安卓客户端实现详解(一)–连接建立与重连

    http://blog.csdn.net/zly921112/article/details/72973054 前言 这里特别说明下因为WebSocket服务端是公司线上项目所以这里url和具体协议我 ...

  2. BFS以及hash表判重的应用~

    主要还是讲下hash判重的问题吧 这道题目用的是除法求余散列方式 前几天看了下算法导论 由于我们用的是线性再寻址的方式来解决冲突问题 所以hash表的大小(余数的范围)要包含我们要求的范围 对mod的 ...

  3. const关键字也许该被替换为readonly

    只读的变量,其值在编译时不能被使用,因为编译器在编译时不知道其存储的内容. const修饰的只读变量 const  int   Max = 100: int  Array[Max] ; c文件中,编译 ...

  4. Scalaz(4)- typeclass:标准类型-Equal,Order,Show,Enum

    Scalaz是由一堆的typeclass组成.每一个typeclass具备自己特殊的功能.用户可以通过随意多态(ad-hoc polymorphism)把这些功能施用在自己定义的类型上.scala这个 ...

  5. C# 二进制替换第一弹 byte 数组替换

    在做通讯相关的数据操作时常常须要用到 byte[]   byte 数组替换操作.比方协义转换相关的 如今提供了几种替换的方法 /// <summary> /// 二进制数据 操作 /// ...

  6. C 语言实现字符串替换

    void replaceFirst(char *str1,char *str2,char *str3) { ]; char *p; strcpy(str4,str1); if((p=strstr(st ...

  7. 介绍一种很棒的wince 如何替换系统声音的方法

    Topic:介绍一种很棒的wince 如何替换系统声音的方法(作者:Baiduluckyboy) //------------------------------------------------- ...

  8. MySQL 库名重命名

    MySQL ( RENAME database olddbname TO newdbname )  对库名的重命名上会出现一些奇怪的错误.有丢失数据的风险. 所以如何去重命名呢: 1 用mysqldu ...

  9. C++ 重定义、重载、覆盖

    想要用好C++继承和类自身函数实现就必须了解C++得三个概念重定义(redefine).重载(overload).重写(override). 一 基本感念 1 重定义(redefine) 派生类对基类 ...

随机推荐

  1. JAVA基础整理-集合篇(一)

    集合作为JAVA的基础知识,本来感觉自己理解的很清楚了,但是在最近的一次面试中还是答得不尽如人意!再次做一下整理,以便加深理解以及随时查阅. 首先,java.util包中三个重要的接口及特点:List ...

  2. Mpale 在汽车底盘悬架系统公差分析应用

    汽车底盘的作用是接受发动机的动力,使车轮转动,并保证汽车按驾驶员的操纵正常行驶.底盘包括传动系统.行驶系统.转向系统和制动系统这四大部分,通常,这四大系统也简称为传动系.行驶系.转向系和制动系.悬架是 ...

  3. 框架设计之ADO.NET Command的ExecuteScalar误用情景及底层解说

    最近下载了点资料,学了学Android,发现Android入门还算简单,从.NET过渡到Android,也就三七十一天的事. 大伙有空也可以学学... 好了,言归正文,那日,有网友发了一个他们公司的数 ...

  4. Kotlin笔记

    官网: http://kotlinlang.org/ http://kotlinlang.org/docs/reference/ 中文教程: http://kotlindoc.com/ Gradle: ...

  5. MyBatis(跨表查询)

    1.建立数据库表如下: DROP TABLE IF EXISTS t_demo_user; CREATE TABLE IF NOT EXISTS t_demo_user( userid ), user ...

  6. CI-持续集成(2)-软件工业“流水线”技术实现

    1   概述 持续集成(Continuous Integration)是一种软件开发实践.在本系列文章的前一章节已经对其背景及理论体系进行了介绍.本小节则承接前面提出的理论构想进行具体的技术实现. & ...

  7. 自己动手写一个简单的MVC框架(第一版)

    一.MVC概念回顾 路由(Route).控制器(Controller).行为(Action).模型(Model).视图(View) 用一句简单地话来描述以上关键点: 路由(Route)就相当于一个公司 ...

  8. ASP.NET MVC 5 Web编程2 -- URL映射(路由原理)

    本章将讲述ASP.NET MVC5 的路由原理,即URL映射机制. 简单点就是解释:为什么MVC在浏览器输入地址就能访问到类(或类中的方法)?这是怎么做到的?我自己可以通过.NET写出一个自己的MVC ...

  9. 【js技巧】~(按位非)运算符的妙用

    今天在reivew部门牙套姐MM的代码的时候,有点小心得,给大家分享.我们常常说到,“学以致用”,但我发现自己却很少能真正做到.<javascript高级程序设计>即大家常说的“红宝书”, ...

  10. [ASP.NET MVC 小牛之路]03 - Razor语法

    本人博客已转移至:http://www.exblr.com/liam  Razor是MVC3中才有的新的视图引擎.我们知道,在ASP.NET中,ASPX的视图引擎依靠<%和%>来调用C#指 ...