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()区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java虚拟机中多线程总结

    java虚拟机中多线程总结

    在本篇内容中小编给大家分享的是关于java虚拟机中多线程的知识点总结内容,需要的朋友们参考学习下。
    2019-06-06
  • nacos在liunx系统中启动成功浏览器却访问不了的解决方法

    nacos在liunx系统中启动成功浏览器却访问不了的解决方法

    在linux下搭建nacos,现在想要启动,访问nacos页面,访问不了,所以本文小编将给大家介绍nacos在liunx系统中启动成功,浏览器却访问不了?全面的解决办法,需要的朋友可以参考下
    2023-09-09
  • Java解析xml的四种方法汇总

    Java解析xml的四种方法汇总

    XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已。java中基本的解析方式有四种,DOM解析、sax解析、JDOM解析和DOM4J解析,下面我们就来详细探讨下这四种方式
    2016-05-05
  • 在SSM框架中将图片上传到数据库中的实现代码

    在SSM框架中将图片上传到数据库中的实现代码

    这篇文章主要介绍了在SSM框架中将图片上传到数据库中的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • springboot集成CAS实现单点登录的示例代码

    springboot集成CAS实现单点登录的示例代码

    这篇文章主要介绍了springboot集成CAS实现单点登录的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Java数据结构之红黑树的真正理解

    Java数据结构之红黑树的真正理解

    这篇文章主要为大家详细介绍了Java数据结构之红黑树的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Java超详细讲解ArrayList与顺序表的用法

    Java超详细讲解ArrayList与顺序表的用法

    ArrayList 类是一个可以动态修改的数组,与普通数组的区别就是它是没有固定大小的限制,我们可以添加或删除元素。ArrayList 继承了 AbstractList ,并实现了 List 接口,顺序表是将元素顺序地存放在一块连续的存储区里,元素间的顺序关系由它们的存储顺序自然表示
    2022-06-06
  • springboot整合JSR303参数校验与全局异常处理的方法

    springboot整合JSR303参数校验与全局异常处理的方法

    JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator,这篇文章主要介绍了springboot整合JSR303参数校验与全局异常处理,需要的朋友可以参考下
    2022-09-09
  • Java中redis的基本类型

    Java中redis的基本类型

    这篇文章主要介绍了Java中redis的基本类型,redis存储数据的基本类型有:字符串类型、散列类型、列表类型、集合类型、有序集合类型,下面我们对其中几个进行简单介绍,需要的小伙伴可以参考一下
    2022-03-03
  • Java实现经典游戏超级玛丽的示例代码

    Java实现经典游戏超级玛丽的示例代码

    在你的童年记忆里,是否有一个蹦跳、顶蘑菇的小人?本文将用java语言实现经典游戏《超级玛丽》,文中采用了swing技术进行了界面化处理,需要的可以参考一下
    2022-02-02

最新评论