• Java中equals方法的用法


    一、Object类中的equals方法

    所有类都从Object类中继承了equals方法。

    Object类中equals方法源代码如下:

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

    Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一个对象,所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的是同一块内存对象,则返回true,如果指向的不是同一块内存,则返回false。注意:即使是内容完全相等的两块不同的内存对象,也放回false。

    即:如果是同一块内存,则object中的equals方法返回true,如果是不同的内存,则返回false。

    如果希望不同内存但相同内容的两个对象equals时返回true,则我们需要重写父类的equals方法。

    class A
    {
    	int i;
    	public A(int i)
    	{
    		this.i = i;
    	}
    	// public boolean equals(Object obj)  //如果希望不同内存但相同内容的两个对象equals时返回true,则重写父类的equals
    	// {
    		// A aa = (A)obj;
    		// if(this.i == aa.i)
    			// return true;
    		// else 
    			// return false;
    	// }
    }
    public class TestEquals_1
    {
    	public static void main(String[] args)
    	{
    		A aa1 = new A(3);
    		A aa2 = new A(3);
    		
    		System.out.println(aa1.equals(aa2));    //false
    	}
    }
    
    


    二、String类中的equals方法

    String类已经重写了Object中的equals方法。

    String类的equals方法是用来判断两个对象的内容是否相等,Object类的equals方法是用来判断两个对象是否是用一个对象。

    public class TestEquals_2
    {
    	public static void main(String[] args)
    	{
    		String str1 = new String("China");
    		String str2 = new String("China");
    		System.out.println(str1.equals(str2));  //true
    		System.out.println(str1 == str2);       //false
    		
    		String str3 = "China";
    		String str4 = "China";
    		System.out.println(str3.equals(str4));  //true
    		System.out.println(str3 == str4);       //ture
    		 
    	}
    }



  • 相关阅读:
    JMeter--聚合报告之 90% Line 正确理解
    jmeter--函数助手对话框之参数详解
    测试理论--如何根据需求设计测试用例
    java jdk 1.6 下载
    linux磁盘满时,如何定位并删除文件
    linux mysql 新增用户 分配权限
    Hibernate 中多对多(many-to-many)关系的查询语句
    springMVC的url-pattern /和/*的区别
    thinkphp多表关联并且分页
    thinkphp 模板里嵌入 php代码
  • 原文地址:https://www.cnblogs.com/yzy-blogs/p/6597346.html
Copyright © 2020-2023  润新知