`
luxury_zh
  • 浏览: 71463 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

String,Long,Integer等类型调用equals方法比较

阅读更多
    类似于"abcd".equals(someString)想必大家都很熟悉了,但是如果是在某个Long或者Integer类型对象上调用equals方法与someString做比较的话,结果会是怎样呢?
     不看源码之前,先猜想:
     可能1、对Long(Integer)对象调用toStirng方法后再比较。
     可能2、用类似Intger.parseInt(someString)来比较,可能性不大,毕竟不是所有类型的对象都有类似这样的方法,但是toString()是每个类都有的。
     那么,翻看源码吧,首先看java.lang.Integer
   
    public boolean equals(Object obj) {
	if (obj instanceof Integer) {
	    return value == ((Integer)obj).intValue();
	}
	return false;
    }

    原来,比较之前,首先会判断待比较对象的类型是否是Integer类型(或者其派生类型,但由于Integer已经声明为final class,故没有派生类),如不是,则直接返回false,否则比较两者的数值。类似的,Long也是这样的实现方式。
    所以,在Long(Integer)上调用equals方法与Stirng类型比较时,需要先调用其toString()方法,然后再比较。这也算是昨天开发过程中碰到的个小插曲吧,在这里记录一下,与大家分享。
分享到:
评论

相关推荐

    Java 2实用教程(第三版)实验指导与习题解答

    实验1 String类的常用方法 19 实验2 比较日期的大小 21 实验3 处理大整数 22 上机实践6 组件及事件处理 23 实验1 算术测试 23 实验2 信号灯 25 实验3 布局与日历 28 上机实践7 组件及事件处理2 31 实验1 方程求根 31...

    Java问题宝典2012版

    11、"=="和equals方法究竟有什么区别? 12 12、静态变量和实例变量的区别? 13 13、是否可以从一个static方法内部发出对非static方法的调用? 13 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math....

    SQLiteDemo

    public People_mll[] queryIdData(long id){//定义一个类型为People_mll更新全部记录的方法 //用query方法返回游标Cursor对象 Cursor results=db.query(DB_TABLE, new String[]{KEY_ID,KEY_NAME,KEY_AGE,KEY_...

    Java面试宝典2011版

    11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math....

    JAVA面试题最全集

    1.Java有那些基本数据类型,String是不是基本数据类型,他们有何区别。 2.字符串的操作: 写一个方法,实现字符串的反转,如:输入abc,输出cba 写一个方法,实现字符串的替换,如:输入bbbwlirbbb,输出...

    Java面试宝典2017.zip

    11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math....

    Java面试宝典

    11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math....

    java 面试常问的问题 如何回答

    11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math....

    java面试总结

    11、"=="和equals方法究竟有什么区别? 11 12、静态变量和实例变量的区别? 12 13、是否可以从一个static方法内部发出对非static方法的调用? 12 14、Integer与int的区别 13 15、Math.round(11.5)等於多少? Math....

    java面试宝典

    11、"=="和equals方法究竟有什么区别? 6 12、静态变量和实例变量的区别? 6 13、是否可以从一个static方法内部发出对非static方法的调用? 6 14、Integer与int的区别 7 15、Math.round(11.5)等於多少? Math.round(-...

    【05-面向对象(下)】

    •八大数据类型的包装类分别为:Byte、Short、Integer、Long、Character、 Float、Double、Boolean。 把基本数据类型变量包装类实例是通过对应包装类的构造器来实现的,不仅如此,8个包装类中除了 Character之外,...

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

     Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别...

    java 面试题 总结

    Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。 与cgi的区别...

    Excel POI读取封装(文件+示范代码)

    Integer sheetIndex, String startPoint, String endPoint) throws Exception { FileInputStream inputStream = null; inputStream = new FileInputStream(excelName); HSSFWorkbook workbook = new ...

    java面试宝典2012版.pdf

    11、"=="和equals方法究竟有什么区别? 12、静态变量和实例变量的区别? 13、是否可以从一个static方法内部发出对非static方法的调用? 14、Integer与int的区别 15、Math.round(11.5)等於多少? Math.round(-11.5)等...

    千方百计笔试题大全

    13、swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上? 9 14、编程题: 用最有效率的方法算出2 乘以8 等於几? 9 15、有没有length()这个方法? String 有没有length()这个方法? 9 16、在JAVA ...

    java经典面试2010集锦100题(不看你后悔)

    C) 子类继承父类,如果父类中只有一个构造方法并且有参数,那么在子类的构造方法中必须先用super调用父类构造方法并传参。 D) 以上说法都不正确。 题目11:d 程序如下: class Test { private int day; public int...

Global site tag (gtag.js) - Google Analytics