关于equals()和==区别

来源:百度知道 编辑:UC知道 时间:2024/05/30 19:11:55
class A
{
int a=1;
}
class Appa
{
public static void main(String args[])
{
A obj1,obj2;
obj1=new A();
obj2=new A();
System.out.println("obj1==obj2:"+(obj1.equals(obj2 )));
System.out.println("obj1==obj2:"+(obj1==obj2));
}
}
输出结果为什么都是false阿?

== 和 Equals 的区别
  1. == 是一个运算符。
  2.Equals则是string对象的方法,可以.(点)出来。
  
  我们比较无非就是这两种 1、基本数据类型比较 2、引用对象比较
  1、基本数据类型比较
  ==和Equals都比较两个值是否相等。相等为true 否则为false;
  
  2、引用对象比较
  ==和Equals都是比较栈内存中的地址是否相等 。相等为true 否则为false;
  
  需注意几点:
  1、string是一个特殊的引用类型。对于两个字符串的比较,不管是 == 和 Equals 这两者比较的都是字符串是否相同;
  2、当你创建两个string对象时,内存中的地址是不相同的,你可以赋相同的值。
  所以字符串的内容相同。引用地址不一定相同,(相同内容的对象地址不一定相同),但反过来却是肯定的;
  3、基本数据类型比较(string 除外) == 和 Equals 两者都是比较值;

equals()是用做对象之间的比较,所以在String类型变量之间的比较建议用equals()
而"=="则在int类型变量之间比较的时候可以用

equals Object 类的一个方法 默认返回的是 false
一般都是采用覆盖equals这个方法来实现比较功能
==是逻辑运算,逻辑运算比较的方法是值比较`

==是指引用指向的同一个对象
equals一般用于两个对象的值比较,而非引用比较,但它的缺省实现而是用==来判断的,这个函数需要在自定义的class里自己实现出来。

如果数据类型是INT的就用==就判断
如果数据类型是String类型的就用eques去判断!
区别!
==比较引用数据类型时,它比较的是两个引用变量是否指向同一个对象.
equals()方法只能比较引用类型,不能比较简单数据类型.该方法在Object类里面定义的,所以,任何一个类,里面都继承了equals()方法
在String类中,对equ