java中“==“和equals()的区别详解

 更新时间:2021年01月17日 14:46:20   作者:萌新小灰灰  
这篇文章主要给大家介绍了关于java中“==“和equals()区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

今天我们探讨一下Java中"=="与equals()的区别

==:关系运算符

   在基本数据类型中比较两个值的内容是否相等
  
   在引用类型型中比较的是两个对象的地址是否相等

equals()是Object类中的方法

1.基本数据类型无法使用equals()方法

2.在引用类型中若是没有重写Object类时,则默认使用Object类的equals方法,则仍然
利用“==”比较两个对象的内存地址,若是重写Object类的equals方法,则调用子类重写后   
的方法可以进行内容或值的比较

例如字符串中,equals()方法重写Object类的equals()方法,从而可以直接比较字符串的
内容。(可以自行观察字符串equals()源代码,此处不细讲)

"=="的具体用法,代码如下:

package Test01;
//"=="的具体实例
public class Demo02 {
	public static void main(String[] args) {
		int a1=10;
		int a2=10;
		String str1=new String("aaa"); //在堆中开辟了新的空间,从而内存地址不相等
		String str2=new String("aaa");
		//比较基本数据类型
		System.out.println(a1==a2);
		//引用数据类型
		System.out.println(str1==str2);
	}
}

结果:

equals的用法,代码如下:

1.创建一个对象,调用Object类的equals()方法,比较内存地址

package Test01;
//equals()的具体实现

package Test01;
//Object类的equals()方法
public class Demo02{
	public static void main(String[] args) {
		Demo03 demo=new Demo03("aaa");
		Demo03 demo1=new Demo03("aaa");
		System.out.println(demo.equals(demo1));
		
	}
}
class Demo03 {
	public String str;
	public Demo03(String str){
		this.str=str;
	}
	public String getStr() {
		return str;
	}

}

结果为:

2.例如字符串中,equals()方法重写Object类的equals()方法,从而可以直接比较字符串的内容。

package Test01;
//equals()的在字符串中的方法重写

public class Demo02{
	public static void main(String[] args) {
		String str1=new String("aaa");
		String str2=new String("aaa");
		System.out.println(str1.equals(str2));
	}
}

结果为:

总结:

1."=="在基本数据类型中比较值,在引用类型中比较内存地址

2.equals()在基本数据类型中不可使用

引用类型: 要是对象直接比较,则是调用Object类中equals()方法,要是想要比内容,则可以重写Object类的equals()方法。

(String类的equals()方法)

到此这篇关于java中“==“和equals()区别的文章就介绍到这了,更多相关java “==“和equals()区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 多jdk环境下指定springboot外部配置文件详解

    多jdk环境下指定springboot外部配置文件详解

    这篇文章主要为大家介绍了多jdk环境下指定springboot外部配置文件详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • JVM内存增强之逃逸分析

    JVM内存增强之逃逸分析

    逃逸分析一种数据分析算法,基于此算法可以有效减少Java对象在堆内存中的分配。本文将详细讲讲逃逸分析的原理与实现,需要的可以参考一下
    2022-09-09
  • Java基础之教你怎么用代码一键生成POJO

    Java基础之教你怎么用代码一键生成POJO

    这篇文章主要介绍了Java基础之教你怎么用代码一键生成POJO,文中有非常详细的代码示例,对正在学习Java的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • 详解Java的引用类型及使用场景

    详解Java的引用类型及使用场景

    这篇文章主要介绍了详解Java的引用类型及使用场景,帮助大家更好的理解和学习使用Java,感兴趣的朋友可以了解下
    2021-03-03
  • Java利用jenkins做项目的自动化部署

    Java利用jenkins做项目的自动化部署

    这篇文章主要介绍了Java利用jenkins做项目的自动化部署,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 解决DataOutputStream乱码的问题

    解决DataOutputStream乱码的问题

    这篇文章主要介绍了DataOutputStream乱码问题的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • 详解JAVA的封装

    详解JAVA的封装

    Java面向对象的三大特性:封装、继承、多态。下面对三大特性之一封装进行了总结,需要的朋友可以参考下
    2017-04-04
  • springboot实现浏览器截屏并添加文字

    springboot实现浏览器截屏并添加文字

    大家好,本篇文章主要讲的是springboot实现浏览器截屏并添加文字,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • 解决zuulGateway网关添加路由异常熔断问题

    解决zuulGateway网关添加路由异常熔断问题

    这篇文章主要介绍了解决zuulGateway网关添加路由异常熔断问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Spring Security基于JWT登录认证的项目实践

    Spring Security基于JWT登录认证的项目实践

    JWT被用来在身份提供者和服务提供者间传递被认证的用户身份信息,本文主要介绍了Spring Security基于JWT登录认证的项目实践,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论