Java面试题: == 和 equals() 区别,toString方法

这篇具有很好参考价值的文章主要介绍了Java面试题: == 和 equals() 区别,toString方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、回顾 == 的使用:

== :运算符

    1. 可以使用在基本数据类型变量和引用数据类型变量中
    1. 如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等。(不一定类型要相同)
  • 如果比较的是引用数据类型变量:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体

  • 补充: == 符号使用时,必须保证符号左右两边的引用数据类型变量类型一致。

二、equals()方法的使用:

    1. 是一个方法,而非运算符
    1. 只能适用于引用数据类型
    1. Object类中equals()的定义:
  • public boolean equals(Object obj) {
    return (this == obj);
    }

    说明:Object类中定义的equals()和==的作用是相同的:比较两个对象的地址值是否相同.即两个引用是否指向同一个对象实体

    1. 像String、Date、File、包装类等都重写了Object类中的equals()方法。重写以后,比较的不是两个引用的地址是否相同,而是比较两个对象的"实体内容"是否相同。
    1. 通常情况下,我们自定义的类如果使用equals()的话,也通常是比较两个对象的"实体内容"是否相同。那么,我们就需要对Object类中的equals()进行重写.

    重写的原则:比较两个对象的实体内容是否相同.文章来源地址https://www.toymoban.com/news/detail-475227.html

//基本数据类型
		int i = 10;
		int j = 10;
		double d = 10.0;
		System.out.println(i == j);//true  int会自动类型提升double-->10.0
		System.out.println(i == d);//true
		
		boolean b = true;
		System.out.println(i == b); //false
		
		char c = 10;//10的ASCII码就是10
		System.out.println(i == c);//true
		
		char c1 = 'A';
		char c2 = 65; //A的ASCII码就是65
		System.out.println(c1 == c2);//true

	//引用类型:
		Customer cust1 = new Customer("Tom",21);
		Customer cust2 = new Customer("Tom",21);
		System.out.println(cust1 == cust2);//false
		System.out.println(cust1.equals(cust2));
//false--->true(Customer类中重写equals方法后这里输出true)
		
		String str1 = new String("atguigu");
		String str2 = new String("atguigu");
		System.out.println(str1 == str2);//false 因为地址不同
		System.out.println(str1.equals(str2));//true

如何重写equals()

手动重写举例:
class User{
String name;
int age;
	//重写其equals()方法
	public boolean equals(Object obj){
		if(obj == this){
			return true;
		}
		if(obj instanceof User){
			User u = (User)obj;// 向下转型 不转的话User中的属性就调用不了,将 obj 对象转换为 User 类型的对象
			return this.age == u.age && this.name.equals(u.name);
			//判断两个 User 对象的 age 属性是否相等。
		}                          //name是String类型所以要用equals比较
		return false; //如果不是同一类型 直接返回false
	}
}
 ----开发中如何实现:idea可以手动ait+ins生成

toString方法

toString()方法
toString()的使用:
   1. 当我们输出一个对象的引用时,实际上就是调用当前对象的toString()
  s1=“hello”;System.out.println(s1);  
	//相当于	   
	System.out.println(s1.toString());

  2. Object类中toString()的定义:
    public String toString() {
  return getClass().getName() + "@" + Integer.toHexString(hashCode());
     }
 其返回值是String类型,返回类名和它的引用地址。
     
  3.StringDateFile、包装类等都重写了Object类中的toString()方法。
    使得在调用对象的toString()时,返回"实体内容"信息
    
  4. 自定义类也可以重写toString()方法,当调用此方法时,返回对象的"实体内容"
 如何重写toString()
 5. 基本类型数据转换为String类型时,调用了对应包装类的toString()方法
     int a=10;
	System.out.println(“a=+a);
举例:
//自动实现
	@Override
	public String toString() {
		return "Customer [name=" + name + ", age=" + age + "]";
	}

到了这里,关于Java面试题: == 和 equals() 区别,toString方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java中怎么使用equals()方法比较

           在 Java 中, equals() 方法用于比较两个对象是否相等。 equals() 方法是 Object 类的方法,可以被所有的类继承和使用。 要使用 equals() 方法,需要按照以下步骤进行操作: 1.确保你要比较的对象不为 null 。否则,如果你尝试调用 equals() 方法,会触发空指针异常。 2.调用要

    2024年01月19日
    浏览(38)
  • “==“和equals方法究竟有什么区别?

    ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用 ==操作符。 如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内

    2023年04月17日
    浏览(24)
  • 【JAVA基础】== 与 equals区别

    它的作用是判断两个对象的地址是不是相等。即,判断两个对象是不是同一个对象(基本数据类型 比较的是值,引用数据类型 比较的是内存地址)。 基本数据类型 :byte,short,char,int,long,float,double,boolean。他们之间的比较,应用双等号(==),比较的是他们的值。 引用数据类型 :

    2024年02月11日
    浏览(29)
  • BigDecimal的equals方法和compareTo方法的区别

    面试经常会问道为什么不能用BigDecimal的equals方法做等值比较? 其实BigDecimal的equals方法和compareTo并不一样,equals方法会比较两部分内容,分别是值(value)和标度(scale),而对于1.0和1这两个数字,他们的值虽然一样,但是精度是不一样的,在使用equals比较的时候会返回fals

    2024年02月04日
    浏览(25)
  • Java 中 == 与 equals() 的区别

    2024年02月15日
    浏览(32)
  • JAVA中.equals()与 ==的区别

            “==”是 运算符 ,如果是基本数据类型,则比较 存储的值 ;如果是引用数据类型,则比较 所指向对象的地址值 。         equals是 Object的方法 ,比较的是 所指向的对象的地址值 ,一般情况下,重写之后比较的是 对象的值 。 八大数据类型: 整数 byte、sho

    2024年02月08日
    浏览(32)
  • java中的tostring方法

    1.作用:在Java中,toString() 方法是 Object 类中定义的一个方法。toString() 方法的作用是返回对象的字符串表示。在没有重写 toString() 方法时,默认情况下返回的字符串表示为“类名@哈希码” (包名+类名@对象的16进制内存地址)的形式。 重写 toString() 方法可以自定义返回的字符串

    2024年02月16日
    浏览(30)
  • c# ==操作符和equals方法的区别

    在C#中,\\\"==\\\"操作符和Equals()方法有着不同的用途和行为。 \\\"==\\\"操作符: \\\" “操作符用于比较两个对象的值是否相等。当使用” \\\"操作符比较两个引用类型的对象时,它会比较它们的引用是否指向相同的内存地址。 对于值类型(如int、double等),\\\"==\\\"操作符比较它们的实际值。如

    2024年01月23日
    浏览(33)
  • 【Java扫盲篇】==和equals的区别

    这是一道面试经典题,面试官对你说:小伙子,请你说说 == 和 equals 的区别 对于==来说 如果比较的是基本数据类型,那么==比较的是数据的值是否相同。注意: (与数据类型无关) 如果比较的是引用数据类型,那么==比较的是两个对象的地址是否相同,即两个引用是否指向同

    2024年03月23日
    浏览(25)
  • java中容易被忽视的toString()方法

    之前一直认为toString就是将数据转换成字符类型,直到最近写出了一个bug才对toString有了新的认识 不同数据类型,toString() 有不同的操作 定义一个student类,包含姓名 String类型、性别 String类型、年龄 int 类型、分数列表 String类型的list类型 测试toString方法 运行结果,toString()方

    2024年02月21日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包