返回顶部
首页 > 资讯 > 后端开发 > JAVA >java中equals与“==”的区别
  • 672
分享到

java中equals与“==”的区别

javaequals==区别 2017-05-07 19:05:52 672人浏览 才女
摘要

区别:== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.

区别:

== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。

equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang.Object类的,所以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是Object类中的方法,而Object中的equals方法返回的却是==的判断。

java中的数据类型可以分为两类:

基本数据类型

byte,short,char,int,long,float,double,boolean

基本数据类型之间的比较需要用双等号(==),因为他们比较的是值。

引用数据类型

接口、类、数组等非基本数据类型

Java中的字符串String属于引用数据类型,因为String是一个类。

当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。因为没new一次就会重新开辟一个新的堆内存空间

Entity entity = new Entity();
Entity entity1 = new Entity();
Entity entity2 = entity;
        
System.out.println(entity==entity2);
System.out.println(entity.equals(entity2));

System.out.println(entity.equals(entity1));
System.out.println(entity==entity1);

结果:

true
true
false
false

总结:

对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是内存中的存放位置的地址值,跟双等号(==)的结果相同;如果被复写,按照复写的要求来。

== 的作用:

基本类型:比较的就是值是否相同;

引用类型:比较的就是地址值是否相同。

equals 的作用:

引用类型:默认情况下,比较的是地址值,重写该方法后比较对象的成员变量值是否相同。

推荐教程:java入门教程

--结束END--

本文标题: java中equals与“==”的区别

本文链接: https://lsjlt.com/news/1621.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java中equals与“==”的区别
    区别:== 比较的是变量(栈)内存中存放的对象的(堆)内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象。比较的是真正意义上的指针操作。equals用来比较的是两个对象的内容是否相等,由于所有的类都是继承自java.lang....
    99+
    2017-05-07
    java equals == 区别
  • Java中的(==)与equals有什么区别
    本篇内容主要讲解“Java中的(==)与equals有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java中的(==)与equals有什么区别”吧!j...
    99+
    2024-04-02
  • java equals和==的区别
    java9举例代码: (推荐学习:java课程)String str1 = "abc"; String str2 = "abc"; String str3 = new String("abc"); String s...
    99+
    2015-02-02
    java入门 java
  • Java中equals和==的区别详解
    目录1.java中的数据类型,可分为两类: 2.再稍微改动一下程序,会有更奇怪的发现: 3. 字符串缓冲池 4.再次更改程序: 总结1.java中的数据类型,可分为两类: 1.基本...
    99+
    2024-04-02
  • 详解Java中==和equals()的区别
    目录1. ==1.1 基本数据类型1.2 引用数据类型1.3 小结2. equals3. 总结1. == == 是运算符,用来判断两个值是否相等,==可以使用在基本数据类型变量和引用...
    99+
    2024-04-02
  • Java中==和equals()的区别有哪些
    小编给大家分享一下Java中==和equals()的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. ==== 是运算符,用来判断两个值是否相等,==可以使用在基本数据类型变量和引用数据类型变量中1.1 基本数...
    99+
    2023-06-25
  • Java中==和equals有什么区别
    本文小编为大家详细介绍“Java中==和equals有什么区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中==和equals有什么区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。== 是 Java...
    99+
    2023-06-27
  • java ==和equals的区别有哪些
    总结的来说:(1)对于==,比较的是值是否相等;如果作用于基本数据类型的变量,则直接比较其存储的“值”是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址。(2)对于equals方法,注意:equals方法不能作用于基本数据类型...
    99+
    2020-10-25
    java入门 java == equals 区别
  • Java中使用==和equals的区别是什么
    这篇“Java中使用==和equals的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java中使用==和equa...
    99+
    2023-06-29
  • Java详细解析==和equals的区别
    目录1、== 解析2、equals 方法解析3、equals方法具有以下特性1、== 解析 == 常用于相同的基本数据类型之间的比较,也可用于相同类型的对象之间的比较; 如...
    99+
    2024-04-02
  • javaSE中的==和equals的联系与区别是什么
    本篇内容主要讲解“javaSE中的==和equals的联系与区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javaSE中的==和equals的联系与区别是什么”吧!问题这里先抛出一些比...
    99+
    2023-06-16
  • C#中==(双等于号)与equals()区别详解
    这两种方式也是大家在日常编码工作当中用的比较多的判断方式、之前在使用的时候也没太关注两者在比较不同类型的时候存在哪些区别 今天就和大家一起深入了解一下其中区别 一、值类型比较判断 对...
    99+
    2024-04-02
  • javaSE中的==和equals的联系与区别是怎样的
    这篇文章给大家介绍javaSE中的==和equals的联系与区别是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。写在前面:==和equals是我们面试中经常会碰到的问题。那么它们之间有什么联系和区别呢?今天我们就...
    99+
    2023-06-03
  • java中“/”与“%”的区别
    区别:%是求模运算符,/是除运算符。%是求余运算,/是普通的除号。实例:System.out.println(3/5) = 0; System.out.println(2/5) = 0; System.out.println(4/5) ...
    99+
    2020-06-30
    java入门 java / % 区别
  • Java常见知识点中==和equals的区别是什么
    这篇文章将为大家详细讲解有关Java常见知识点中==和equals的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。== 是一个运算符。 equals则是string对象的方法。ja...
    99+
    2023-06-05
  • Equals、==和RefrenceEquals的区别是什么
    本篇文章为大家展示了Equals、==和RefrenceEquals的区别是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。我们这里将简单对比Equals、==和RefrenceEquals的区别...
    99+
    2023-06-17
  • equalsignorecase和equals的区别是什么
    equalsIgnoreCase是String类的方法,用于比较两个字符串是否相等,不区分大小写。即使两个字符串的字符顺序和大小写不...
    99+
    2023-08-25
    区别
  • java中double与float的区别
    java中double与float的区别:(推荐:java视频教程)单精度浮点数(float)与双精度浮点数(double)的区别如下:(1)在内存中占有的字节数不同单精度浮点数在机内占4个字节双精度浮点数在机内占8个字节(2)有效数字位数...
    99+
    2015-06-15
    java
  • java中list与arraylist的区别
    区别:List是一个接口,而ArrayList是List接口的一个实现类。ArrayList类继承并实现了List接口。因此,List接口不能被构造,也就是我们说的不能创建实例对象,但是我们可以像下面那样为List接口创建一个指向自己的对象...
    99+
    2018-04-01
    java基础 java list arraylist 区别
  • java中i++与++i的区别
    i++是先赋值,再运算,++i是先运算,再赋值。实例如下:package com.test; public class TestAdd { public static void main(String[] args) { ...
    99+
    2017-03-13
    java入门 java i++ ++i 区别
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作