==和equals闲谈
来源:互联网 发布:暨南大学网络教学 编辑:程序博客网 时间:2024/05/16 20:23
一直以为==是比较引用,而equals是比较值,知道前不久才发现,其实==和equals都是比较引用是否相等。
Object类是所有类的超类,而在Object类中的equals是比较引用,但是我们在对两个String进行比较时,equals实际却是比较的值,而不是比较的引用,可以通过这个例子来看出,String的equals方法是比较值是否相等。
String str1 = new String("abc"); String str2 = "abc";
boolean b = str1.equals(str2);通过测试可以发现b是为true的。
按照常理说,他们两个并不是一个对象,并不像等,可是,为什么呢?因为String重写了Object的equals方法。并且,通过API查找String类,可以发现String的字面量是一个常量。由于String类型在内存中存放方式的特殊性,所以String类的equals方法是比较值。
和String类似的Date方法重写了equals方法,也是比较值相等。所以在使用equals的时候,要注意是否被重写了。
- ==和equals闲谈
- equals 和 ==, equals 和 hashcode
- == equals和Arrays.equals
- "=="和"equals()"
- equals和==
- equals和==
- equals和==
- equals 和 ==
- == 和 equals
- "=="和“equals”
- ==和equals()
- ==和equals
- ==和equals()
- ==和equals
- equals和==
- equals和==
- equals和==
- ==和equals
- PKI入门级介绍
- eclipse 配置tomcat
- 黑马程序员_通灯管理系统
- 付费模式真能让网络服务更加美好么?
- 流程图常见符号
- ==和equals闲谈
- JSP中的数据库操作(3):JSP页面中的数据库插入
- socket编程---服务器端与客户端简单通信
- 【学习点滴-memcached】memcached的分布式算法
- TypeError: object.__new__() takes no parameters
- 线段树典型例题--poj2482
- Tcpdump命令手册
- inux下查看文件编码及修改编码
- 写出严谨的函数(或方法)