java中的== 和equals连个比较运算符是比较容易混淆的.
我们现在分别来谈谈什么是 == 什么是equals
==
java中的==可以用于基本类型及引用类型;
当用于基本数据类型的时候,其意义在于""==""脸变得值是否相等.
输出:
true
=============我是分隔符=============
当==符号用于引用类型的时候,其意义在于 比较双方对象是否相同
当然,对于string a = ""啊""和inreger i = 1对象的创建方式,==比较的方式你也可以姑且看作是值得比较.
本质:
在java中,""==""比较变量是,比较的就是系统"栈"中的内容,也就是栈中的值
基本数据类型在栈中的值就是其内容,而对象类型在栈中存储的是一个引用地址,这个地址就是对象在堆中的位置.对于"=="需要记住的就是以上内容
equals:
首先你需要名曲的就是基本数据类新没有equals方法,
第二,你需要明白的是,所有的类都有equals方法,因为一个类如果没有定义equals方法,它将默认继承object中的equals方法,返回值与==方法相同.
java.lang包中的object类有public boolean equals(object obj)方法,它比较两个对象是否相等
boolean equals(object o){
return this==o;
}
所以,如果你没有覆盖该方法,那么class a == class b 与 class a.equals(class b)的意义是一样的的;(注意:string和基本包装类型已经覆盖了该方法)
下面是代码的参考:
其详细情况可以参考:
<a href="http://blog.csdn.net/u010940300/article/details/44153967">http://blog.csdn.net/u010940300/article/details/44153967</a>