equals和==的使用

1.equals的使用:

    引用数据类型的比较:通常情况下比较的是引用数据类型下的栈中的地址,但当你重写了equals方法后就不一定了

User user1=new User("tom",12);
User user2=new User("tom",12);
//结果为false
System.out.println(user1 equals user2);
//结果为false

System.out.println(user1 == user2);
User user3=user1;
//结果为true

System.out.println(user1 == user2);

 2.==的使用:

  基本数据类型的比较:比较堆中存储的值,常量池

  int a1=65;
  int a2=65;
//结果为true

System.out.println(a1 == a2);
//结果为true

  int a1=65;
  char c='A';
  System.out.println(a1 == c);
  

 3.objiect中的equals方法:未重写时时等同于==方法

Public boolean equals(Object obj){
   return (this== obj);           
}

 4,总结:

4.1像String Data File 包装类 等类的equals方法时重写了Object 的equals方法,这时是比较的内容;

4.2在实际开发中,对于自定义类,往往需要比较两个对象的实体内容是否相同,因此需要重写Object 的equals方法

4.3        1==用在基本数据类型时,

      比较两个变量的值是否相同,如果是相同数据类型直接比较,

      如果比较的是两种不同的数据类型,但两者关系是可以相互进行转换的也可以比较

      比较的是两种不同的数据类型(例如基本数据类型int 和 String 时) 编译报错

  例如

   int a1=65;
  char c='A';
  System.out.println(a1 == c);//结果为true

     2==用于引用数据类型比较时

      比较两个引用保存的地址值是否相同

4.3 equals()的使用只能用在引用数据类型上

原文地址:https://www.cnblogs.com/ylblikestudyJava/p/12359173.html