`

java中==和 equal区别

    博客分类:
  • java
阅读更多

明确概念:

对象的引用:当用类创建一个对象时,类中的成员变量被分配内存空间,这些内存空间称为该对象的实体,而对象中存放着引用(地址),以确保该实体由该对象操作使用。

一、比较对象为基本数据类型(byte,short,char,int,long,float,double,boolean)

比较两个基本数据类型是否相等用==,因为只有类才会有equals方法。

备注:String不是基本数据类型

二、比较对象为引用数据类型

euqals和==本质上都是比较比较的是两个对象的引用(内存地址)是否相同。equals()是Object类的方法 ,object类是所有类的基类,所以每个类都会继承equals()方法。

但在String,Integer,Date在这些类当中重写了equals方法,而不再是比较对象在堆内存中的存放地址了,而是比较它们指向的实体(内容)是否相同。

 

Example:

              Person p1=new Person();//使用new 关键字创建一个对象会为此对象分配内存空间。

              Person p2=null; //此对象还没有内存空间

              p2=p1;//此时p1和p2指向的是同一个内存空间 或说是指向同一个实体(内容)

             String s1 = "nihao";
             String s2 = "nihao";

            内存示意图


              s1==s2 //返回true,指向同一个内存空间,s1和s2为同一个对象

             s1.equals(s2)//返回true

             String s3=new String("nihao");
             String s4=new String("nihao");

           内存示意图:


             s3==s4//返回false,s3和s4分别指向不同的内存空间

             s3.equals(s4)//返回true,它比较的是两个字符串的内容

 

所以 对于引用类型之间进行equals比较,在没有覆写equals方法的情况下,还是比较它们在内存中的存放地址是否相同,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号(==)的结果相同。

分享到:
评论

相关推荐

    3 Java中关于==和equal的区别 以及equals()方法重写

    Java 中关于 == 和 equal 的区别 及其 equals() 方法重写 Java 语言是 Sun 公司的开发成果,其主要特点是可以执行强,与平台的无关性使其实用性更强。但是 Java 中的 == 与 equal 是有区别的。 == 操作符是 Java ...

    equal与==区别

    在Java编程语言中,`equal`方法和`==`操作符都是用来比较对象之间是否相等的工具,但它们之间存在重要的差异。本文将从三个方面进行详细的对比分析:字符串的比较、非字符串对象的比较以及基本数据类型的比较。 ###...

    java中==与equal()区别

    Java 中的 == 和 equals() 是两个不同的比较方法,它们之间有着很大的区别。== 操作符专门用来比较两个变量的值是否相等,也就是比较变量所对应的内存中所存储的数值是否相同。用于比较两个基本类型的数据或两个引用...

    浅析java中String类型中“==”与“equal”的区别

    "浅析Java中String类型中“==”与“equal”的区别" ...理解 “==” 和 “equal” 操作符的区别对于使用 Java 中的 String 类型非常重要。只有当我们正确地使用这两个操作符时,才能编写出正确的程序。

    JAVA Integer == equal 比较 doc 比较大小 是否相等

    JAVA 中的 Integer 比较 在 Java 中,我们经常需要比较两个 Integer 对象是否相等,但是在使用 "==" 运算符时,可能会出现一些意外的结果。本文将深入探讨 Java 中的 Integer 比较,了解为什么使用 "==" 运算符可能...

    【Java面试题】equals与==的区别

    【Java面试题】equals与==的区别

    java中 == 与 equal 的区别讲解

    在Java编程语言中,`==` 和 `equals()` 是两种常用的比较操作符,它们在不同情况下有着不同的含义和用途。本文将深入探讨这两者之间的差异,并通过实例代码和理论解释来帮助理解。 首先,`==` 操作符主要用于基本...

    Java_详解_1、==和Equal

    Java_详解_1、==和Equal用法与比较

    浅谈java 中equals和==的区别

    在Java编程语言中,`equals()` 和 `==` 运算符经常被用来比较对象,但它们之间存在着显著的区别。理解这些差异对于编写正确、健壮的代码至关重要。以下是关于 `equals()` 和 `==` 在Java中的详细解释。 首先,`==` ...

    java 字符串中文判断

    在Java编程语言中,处理字符串是非常常见的操作,尤其是在涉及到文本分析和处理的场景。本文将深入探讨如何在Java中进行中文字符的判断和计数,这主要基于Java的Unicode编码特性以及字符集的理解。 首先,我们需要...

    java-leetcode题解之Partition Equal Subset Sum.java

    java java_leetcode题解之Partition Equal Subset Sum.java

    java-leetcode题解之Get Equal Substrings Within Budget.java

    java java_leetcode题解之Get Equal Substrings Within Budget.java

    java-leetcode题解之Equal Rational Numbers.java

    java java_leetcode题解之Equal Rational Numbers.java

    java中equals和等号(==)的区别浅谈

    在Java编程语言中,`equals()`方法和等号`==`是用于比较对象的两种不同方式,它们在处理不同类型的数据时有不同的行为。了解这两者的区别对于编写正确的代码至关重要。 首先,我们来看Java中的数据类型。Java的数据...

    Java中==与equals的区别

    用此blog记录我学习的过程,文中若有不恰当的地方,还望友情指出互相学习。 一、== 主要有两种比较形式 基本数据类型(也称原始数据类型):byte,...Java中所有的类都继承自Object类,equals()方法就在Object类中被

    java-leetcode题解之Partition to K Equal Sum Subsets.java

    java java_leetcode题解之Partition to K Equal Sum Subsets.java

    java基础if选择题练习题

    根据提供的信息,我们可以总结出这份文档是关于Java基础的学习材料,特别聚焦于...通过这些知识点的学习和实践,你可以更加熟练地掌握Java中的基本流程控制和运算符使用方法,为进一步深入学习Java编程打下坚实的基础。

    JAVA数据预处理中的等宽和等频分箱操作

    在JAVA环境中,我们经常会遇到大量的数值型数据,为了更好地理解和处理这些数据,我们可以采用等宽和等频分箱技术。下面将详细阐述这两种方法以及它们在JAVA中的实现。 等宽分箱(Equal Width Binning)是一种将...

    java时钟java。java

    在Java编程语言中,"java时钟java.java"可能是一个示例程序,用于演示如何在Java中创建和使用时钟。作为一个初学者,你可能会对以下几个关键知识点感兴趣: 1. **Java时间日期API**:在Java 8之前,Java使用`java....

    equals与==之间的区别

    在Java编程语言中,`equals`方法与`==`操作符是进行对象比较时最常用的两种方式,但它们之间存在着显著的区别。理解这些差异对于正确地处理对象比较至关重要。 ### `==` 操作符 `==`操作符主要用于比较两个基本...

Global site tag (gtag.js) - Google Analytics