Object类及equals()方法

1 ==  对于基本数据类型,根据两端的值来判断是否相等,即使两端的数据类型不同,也可以返回true。引用数据类型,比较引用变量类型的地址是否相等

2 equals()是比较引用类型变量是否相等,也是比较地址值

3 ctrl+shift+t 查看源码

package lianxi2;

public class TestEquals {
    public static void main(String []args){
   Department d1 = new Department();
   Department d2 = new Department();
   System.out.println(d1 == d2);
   System.out.println(d1.equals(d2)); //Object的equals方法

   String s1 = new String("tt");
   String s2 = new String("tt");
   System.out.println(s1 == s2);
   System.out.println(s1.equals(s2));  //String类重写equals方法
    }
}
时间: 2024-10-12 00:23:19

Object类及equals()方法的相关文章

Java Object类及其equals方法

基本概念: Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入: Object类是所有Java类的祖先.每个类都使用 Object 作为超类.所有对象(包括数组)都实现这个类的方法.可以使用类型为Object的变量指向任意类型的对象 equals()方法:比较两个对象是否同一       如果两个对象具有相同的类型以及相同的属性值,则称这两个对象相等.如果两个引用对象指的是同一个对像,则称这两个变量同一.Object类中定义的equa

Java Object类的equals()方法

所有类都从Object类中继承了equals方法,Object类中equals方法源代码如下: public boolean equals(Object obj)     {         return this == obj;     } Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一对象,所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的是同一块内存对象,则返回true,如果th

【宋红康学习日记11】Object类与equals方法

1 == (1)当对象是基本数据类型时,比较值: (2)当对象是引用型时,比较的是地址值!!1 2 equals():只处理引用型数据:Object类中的equals方法依然比较的是地址值! 但在String,File,Date类重写了equals方法,比较的是值: 3 String类内存解析 Person p1=new Person("花花",20); Person p2=new Person("曹操",40); syso(p1==p2);//false syso

11.29_常见对象(Object类的equals()方法代码优化).avi

package cn.itcast_03; public class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void

Java:Object类的equals()方法 如何编写一个完美的equals()方法

一  代码实例: package freewill.objectequals;  /** * @author freewill * @see Core Java page161 * @desc getClass实现方式,另有instance of实现方式,根据不同场景使用. */  public class Employee {      private String name;      private int salary;      private String hireDay;     

11.28_常见对象(Object类的equals()方法).avi

package cn.itcast_03; /* * public boolean equals(Object obj):指示其他某个对象是否与此对象"相等". * 这个方法,默认情况下比较的是地址值.比较地址值一般来说意义不大,所以我们要重写该方法. * 怎么重写呢? * 一般都是用来比较对象的成员变量值是否相同. * 重写的代码优化:提高效率,提高程序的健壮性. * 最终版: * 其实还是自动生成. (第一就是向下转型出现问题,demo转成Student),因此在向下转型的时候加入

static,final关键字,Object类的tostring方法,equals方法,hashCode方法

1)static关键字 static可以修饰:属性.方法.代码块 静态方法不能访问非静态 属性 或 方法 属性(变量): 成员变量: 静态变量: 通过 类名.静态变量来访问 通过 对象名.静态变量来访问(是有警告的) 存在于方法区中,有且仅有一份 非静态变量 局部变量 代码块 代码块的执行顺序 1.静态代码块:哪个静态代码块放在前边,就先执行谁 2.普通代码块:哪个普通代码块放在前边,就先执行谁 3.构造方法 如果有两个类,一个类是Father,另一个类是Child , Child 继承了 Fa

关于Object类的equals方法和hashCode方法

关于Object类的equals的特点,对于非空引用: 1.自反性:x.equals(x) return true : 2.对称性:x.equals(y)为true,那么y.equals(x)也为true: 3.传递性:x.equals(y)为true,y.equals(z)为true,那么x.equals(z)也为true: 4.一致性:x.equals(y)的第一次调用为true,那么x.equals(y)的第二次,第三次,...,第n次调用也为true,前提条件是在比较之间没有修改x,也没

Java中Object类的公有方法

HashCode();wait();notify();equals();getClass();toString();clone();finalize(); 这里只是简单介绍一下其中的几个函数: HashCode(): * As much as is reasonably practical, the hashCode method defined by * class {@code Object} does return distinct integers for distinct * obje