equals() 方法用于判断 Number 对象与方法的参数进是否相等。

语法

public boolean equals(Object o)

参数

o -- 任何对象。

返回值

如 Number 对象不为 Null,且与方法的参数类型与数值都相等返回 True,否则返回 False。

Double 和 Float 对象还有一些额外的条件,可以参阅 API 手册:JDK 1.6。

实例public class Test{

public static void main(String args[]){

Integer x = 5;

Integer y = 10;

Integer z =5;

Short a = 5;

System.out.println(x.equals(y));

System.out.println(x.equals(z));

System.out.println(x.equals(a));

}

}

编译以上程序,输出结果为:false

true

false

public boolean equals(Object obj)

{

return this == obj;

}

Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一对象,所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的是同一块内存对象,则返回true,如果this和obj指向的不是同一块内存,则返回false,注意:即便是内容完全相等的两块不同的内存对象,也返回false。

那么equals()方法与之前的“==”有什么区别呢?

在进行演示代码之前先来了解一下Java内存的主要划分,可以帮助我们更好地理解下面的实例演示。

Java虚拟机里的堆区要存放new出来的对象,栈区存放局部变量,而方法区包含了类的所有信息,包括所有的方法,静态变量,常量等。

通过以下实例我们来加深一下equals与,代码如下:

public class Equals{

public static void main(String[] args){

String s1="apple";

String s2="apple";

System.out.println(s1==s2);    //true

System.out.println(s1.equals(s2));    //equals比较的是内容,true

String s3=new String("apple");

String s4=new String("apple");

System.out.println(s3==s4);  //false

System.out.println(s3.equals(s4));  //true

}

}

从上面的实例可以看出,“==”比较的是两个引用的对象是否相等,而equals()方法比较的是两个对象的实际内容。我们结合上面的内存的划分来理解这个区别。

String str1=new String("apple");

String str2=new String("apple");

System.out.println(s3==s4);  //false

System.out.println(s3.equals(s4));  //true

上述几行代码内存分析如下图所示:

因为“==”比较的是两个引用的对象是否相等,从上图很容易看出来不等,所以System.out.println(s3==s4),结果为False;而equals()方法比较的是两个对象的实际内容,从图中可以看出s3和s4都指向apple,内容是相同的,所以System.out.println(s3.equals(s4)),结果为True。

再来看

String s1="apple";

String s2="apple";

内存分析如下图:

java equals返回值_Java equals() 方法相关推荐

  1. java递归函数返回值_Java基础——方法返回值递归

    原标题:Java基础--方法返回值&递归 声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权:凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记. 例题:写一 ...

  2. java递归函数返回值_java基础5(方法、有无返回值、重载、递归)

    方法: 定义:解决事情的办法.具有特定功能的代码块 特点: 1.方法不调用不执行 2.类中方法外,方法不能嵌套 有返回值类型的方法 定义格式: 修饰符 返回值类型 方法名([参数列表]){ 方法体语句 ...

  3. java 接口 返回值_java api返回值的标准化详解

    api返回值的标准化 例如 {"status":200,"message":"操作成功","data":"{\ ...

  4. java匿名内部类返回值_java匿名内部类

    java的内部类可以玩出好多花样.介绍都挺多,我就不废话了.专门记一下困惑了我好半天的匿名内部类. 总结一下: 1.匿名内部类通常是为了省事(直接获取一个类实例,这个类实例只在此处用一次,就省得再给它 ...

  5. java hashcode返回值_Java String hashCode() 使用方法及示例

    Java String hashCode() 使用方法及示例 Java String hashCode()方法返回字符串的哈希码. 字符串hashCode()方法的语法为: string.hashCo ...

  6. java compareto 返回值_Java File compareTo()方法

    Java File compareTo()方法 java.io.File.compareTo(File pathname) 方法比较两个抽象路径名的字典顺序.用这种方法定义的排序是依赖于操作系统. 1 ...

  7. java split 返回值_java中Split函数的使用方法

    1.语法如下 String.split(sourceStr,maxSplit) String.split(sourceStr) 参数说明:sourceStr是被分割的字符串,maxSplit是最大的分 ...

  8. java indexof 返回值_Java String indexOf() 方法

    例如: 在字符串中搜索"cjavapy"的首次出现:String myStr = "c java python is cjavapy and www.cjavapy.co ...

  9. java 内部类 返回值_Java学习笔记:形参和返回值、内部类、常用API

    形参和返回值 类名作形参 public void useCat(Cat c){ c.eat(); } CatOperator co=new CatOperator(); Cat c=new Cat() ...

最新文章

  1. TCP连接的建立和终止
  2. 手把手教你将pyqt程序打包成exe(2)
  3. linux 中 id指令,Linux id 命令
  4. 英特尔核显驱动hd630_【惊喜提升】英特尔第十代Cometlake台式机处理器详解与简单评测...
  5. dubbo快速实战(非最佳配置,演示用)
  6. 算法详解_常用算法详解——打印杨辉三角形
  7. WCF开发之消息契约(MessageContract)
  8. Nginx教程(三) Nginx日志管理 (转)
  9. 扬州大学2022年858程序设计与数据结构试题参考答案
  10. python crm_学Python还是买CRM软件?
  11. 固定资产拆分比例怎么计算_固定资产折旧的计算方法
  12. DDD(领域驱动设计)专题(一):什么是DDD?
  13. Java 从虚拟机层面看程序代码是怎么运行起来的
  14. 武田公布2019财年第一季度强劲业绩并上调全年指引
  15. dimission letter exmaple
  16. APF有源电力滤波器Simulink仿真
  17. 盘点 2012 年没落科技巨头
  18. 计算机专业大学排名 来看你的学校排第几,华盛顿州大学计算机专业排名 你的学校排第几...
  19. java学习第109天,p665-676(05/07),12集干的漂亮
  20. 四款小众但非常实用的软件推荐

热门文章

  1. 计算机二级准考证号忘了,怎样查成绩或证明材料听语音
  2. 在线答题小程序开发中遇到的一些兼容问题及性能优化
  3. [CSS] css优先级顺序
  4. JS中的12种循环遍历的方法
  5. javascript中的12种循环遍历方法1
  6. Java重点部分之集合
  7. STC8A系列单片机ADC的使用
  8. 【飞秋教程】远程协助/语音通讯
  9. saltstack(1)环境部署、(2)Grains
  10. BusyBox 72 变