java equals探索
来源:互联网 发布:500万双色球过滤软件 编辑:程序博客网 时间:2024/06/15 19:06
今天在解析一个网页时发现一个问题,首先大家看一段代码
代码1:
class Test{ public static void main(String[] args){ String a="123"; int b=123; System.out.println(a.equals(b)); }}
大家看后感觉最后会打印出什么,是false还是true?
首先大家应该都知道,如果是下面一段代码
代码2:
class Test{ public static void main(String[] args){ String a="123"; String b="123"; System.out.println(a.equals(b)); System.out.println(a==b); }}
代码2打印的是一个true和一个false,java中String如果使用==是比较两个字符串是一个对象,而使用equals是比较字符串所对应的字符串值是否相同。下面回到代码1,一个String与一个int(Integer)使用equals比较,下面看一下equals的源码
public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String) anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }大家看到了吧,if (anObject instanceof String),才会进行下面的进一步比较,否则直接返回false,所以代码1中打印的结果是fasle,大家可以自己试一下。
欢迎大家评论啊
- java equals探索
- Equals探索
- Java学习笔记(44)----------探索equals()和hashCode()方法
- 探索equals()和hashCode()方法
- 探索equals()和hashCode()方法
- Java探索之旅(12)——equals方法及其覆盖
- 疯狂Java学习笔记(44)----------探索equals()和hashCode()方法
- java equals
- Java equals
- java equals
- Java equals
- java equals
- JAVA equals
- Java equals()
- java equals
- java equals
- [java] equals
- java equals
- 利用泛型避免工厂方法强制类型转换
- mac下修改hosts
- ubuntu下Android SDK中adb找不到的解决方案
- poj 1836 Alignment
- 网易面试题(社招)
- java equals探索
- 鸟哥私房菜网址
- 多线程
- 阿里2014届校园招聘面经
- hdu 4722 GoodNumbers
- Linux Netcat 命令——网络工具中的瑞士军刀
- cocos2d-x IOS 和Android播放视频(包括网络视频)
- Android phone 拨号UI
- 谷歌翻译的用户使用量大约为2亿次