equals与==之间的区别
来源:互联网 发布:学摄影的书籍知乎 编辑:程序博客网 时间:2024/05/28 16:00
equals与==之间的区别
1. 简单数据类型的比较
在java中!简单数据类型的比较是通过==
来进行的。在比较中!只要表达式两边的“值”是相
等的!那么表达式的结果就是true!否则为false。
2. 复杂数据类型的比较
复杂数据类型的比较可以采用“==”,也可以采用"equals"方法进行比较.
如:
Object a = new Object();
Object b = new Object();
a==b 的结果应返回false。因为"=="在比较复
杂数据类型的时候(比较的是是否是同一个对象(
只有两个变量指向的是同一个对象的时候( 才能
返回true. 也就是说(在比较的时候(也比较了对象
的地址信息. 只有地址相同的对象才能够返回
true. 而new运算符在每一次运算时(都将会产生
一个新的对象( 每一个新的对象都有自己的内存
和地址. 所以上文代码的比较结果是false。
如果将代码改写为如下形式:
Object a = new Object();
Object b = a;
那么a==b 的结果将返回true.
如果使用equals()方法,那么应注意该方法是
在哪一个类中实现的, 以及该方法实现的具体形
式.在类Object中,该方法的比较与"=="的比较具
有同样的效果.如下代码将输出false.
public static void main(String args[])
{
Object a = new Object();
Object b = new Object();
System.out.println(a.equals(b));
}
但是,如果比较的数据类型不是Object,而是
其他的数据类型String,StringBuffer 以及各
种包裹类等,这些类中重写了Object类中的函数
equals(),所以在调用equals()方法时将跟据多态
的规则来进行调用,而不一定是要使用Object类
中定义的equals()方法.如下例代码将输出true.
public static void main(String args[])
{
String a = new String("hello");
String b = new String("hello");
System.out.println(a.equals(b));
}
此时调用的是String类中的函数equals(),所
以比较的结果就不同了,它比较时只比较对象的
内容,也就是说,只要字符串中的每一个字符对应
相等,那么字符串对象是相等的,而不管对象的地
址是否相同,对象是否是同一个对象.
上例代码改写为如下形式,将依然返回false.
public static void main(String args[])
{
String a = new String("hello");
String b = new String("hello");
System.out.println(a==b);
}
由此可以看出,equals()方法的重写不影响
"=="的比较规则.
在String类中,除了重写了一个equals()函数
来进行比较外,还有一个函数也可以用于字符串
的比较equalsIgnoreCase(),它的比较规则是只要
字符串对象的对应字符是相等的,那么对象是相
等的,而且,在比较对应的字符的时候,认为大写
字母与小写字母是相等的,如下代码输出true.
public static void main(String args[])
{
String a = new String("HELLO");
String b = new String("hello");
System.out.println(a.equalsIgnoreCase(b));
}
2 0
- equals与==之间的区别
- equals与==之间的区别
- equals ==的区别
- 在java中 == 与 equals的区别
- ("").equals(str)与str.equals("")的区别
- "".equals(str)与str.equals("")的区别
- ("").equals(str)与str.equals("")的区别
- ("").equals(str)与str.equals("")的区别
- java中equals与==区别
- hashcode 与 equals的区别
- compareto与equals的区别
- equals 与equalsIgnoreCase的区别
- equals与equalsIgnoreCase 的区别
- java中String的等号、equals、hashcode之间的区别与联系
- hashCode与对象equals之间的使用
- Java:比较运算符compareTo()、equals()、==之间的区别与应用总结
- Java:比较运算符compareTo()、equals()、==之间的区别与应用总结 .
- Java:比较运算符compareTo()、equals()、==之间的区别与应用总结
- POJ-2253-Frogger
- MFC文档/视图结构体系及SDI回顾(2)
- 程序员最害怕的5件事,你中招了吗?
- destoon通过修改源代码实行及时订单处理在线支付
- 安装jpype出现_jpype错误的解决方案
- equals与==之间的区别
- 使用Spring(二)实例化方式(静态工厂,实例工厂)
- The Log(我所读过的最好的一篇分布式技术文章)
- 从“鞭打快牛”故事来看团队的领导力
- Codeforces Round #377 (Div. 2)题解报告
- 汇编随笔
- 动态规划之最长回文子字符串(Longest Palindromic Substring)
- PHP+MySQL查询,Unexpected taken s 错误解决方法
- 第八周项目1-建立顺序串的算法库