Java 程序中测试两个变量是否相等有两种方式:一种是利用 == 运算符,另一种是利用equals()方法。

当使用 == 来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型(不一定要求数据类型严格相同),则只要两个变量的值相等,就返回true。

但是对于两个引用类型变量,只有它们指向同一个对象时, == 判断才会返回true。 == 不可用于比较类型上没有父子关系的两个对象。

很多书上说equals()方法是判断两个对象的值相等。这种说法不准确。实际上equals()方法是Object类提供的一个实例方法,因此所有的引用变量都可以调用该方法来判断是否与其它引用变量相等。但是使用这个方法判断两个对象相等的标准与使用 == 运算符没有区别,同样要求两个变量指向同一个对象才会返回true。因此这个Object类提供的equals()方法没有太大的实际意义,如果希望采用自定义的相等标准,则可采用重写equals方法来实现。

String已经重写了Object的equals()方法,String 的equals()方法判断两个字符串相等的标准是:只要两个字符串所包含的字符序列相同,通过equals()比较将返回true,否则返回 false。

如下列程序所示:

public class EqualTest {

public static void main(String[] args) {

int num1 = 65;

float num2 = 65.0f;

//将输出true

System.out.println("65和65.0f是否相等?"+(num1==num2));

char ch = 'A';

//将输出true

System.out.println("65和‘A’是否相等?"+(num1==ch));

String str1 = new String("hello");

String str2 = new String("hello");

//将输出false

System.out.println("str1和str2是否相等?"+(str1==str2));

//将输出true

System.out.println("str1和str2是否相等?"+str1.equals(str2));

}

}

程序运行结果如图:

Java比较两个数相等的运算符_Java中的==符号与equals()的使用(测试两个变量是否相等)...相关推荐

  1. java简单通讯录的实现02person类_Java中Math类的简单介绍

    我想对于Math类大家一定很熟悉了,是Java提供的一个用来进行简单数学运算的工具类.对于Math类来说,常用的方法有: 加法 public static int addExact(int x, in ...

  2. ACMNO.30 C语言-宏交换 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。

    题目描述 定义一个带参的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参.输出已交换后的两个值. 输入 两个数,空格隔开 输出 交换后的两个数,空格隔开 样例输入 1 2 样例输出 2 ...

  3. C语言习题:/*键盘输入两个非零整数A和B,如果A和B都是偶数则输出两个数的和,如果A和B都是奇数则输出两个数的差,如果A是奇数B是偶数则输出两数积,如果A是偶数B是奇数输出AVB结果*/

    #include<stdio.h> /*键盘输入两个非零整数A和B,如果A和B都是偶数则输出两个数的和, 如果A和B都是奇数则输出两个数的差, 如果A是奇数B是偶数则输出两数积, 如果A是 ...

  4. java里面的 |运算符_Java 中 | ^ 运算符的简单使用

    背景 今天碰到了代码中的按位与运算,复习一下,先列一个各个进制数据表. 顺便复习一下十进制转二进制的计算方式: 接下来解释下这三个运算符: & 按位与,都转为二进制的情况下,同为1则为1,否则 ...

  5. java中的运算符_java中的运算符

    一:概述: Java的运算符,分为四类: 算数运算符.关系运算符.逻辑运算符.位运算符. 算数运算符(9):+  -  *  /  %  ++  -- 关系运算符(6):==  !=  >  & ...

  6. java 中字符串比较方法_java中常用的字符串的比较方法(两种)

    比较字符串比较常用的两个方法是运算符"="和String的equals方法. 使用"="比较两个字符串,是比较两个对象的的"地址"是否一致, ...

  7. java中的位移运算符_java中的移位运算符(, , )

    java中有3种移位运算符 < >>  :  右移运算符,不改变符号位,num >> n 表示二进制右移n位,结果相当于 num / (2的n次方) >>&g ...

  8. Java传统的io和nio区别_Java中IO和NIO的本质和区别

    简介 终于要写到java中最最让人激动的部分了IO和NIO.IO的全称是input output,是java程序跟外部世界交流的桥梁,IO指的是java.io包中的所有类,他们是从java1.0开始就 ...

  9. 两个byte数组拼接_java中两个byte数组实现合并的示例

    java中两个byte数组实现合并的示例 今天在于硬件进行交互的过程中,要到了了需要两个数组进行合并,然后对数组进行反转和加密操作,以下是两个byte数组合并的方法. /** * * @param d ...

最新文章

  1. matplotlib 知识点整理:ax与figure
  2. input python_Python input 使用
  3. 学科实践活动感悟50字_课改实践提素养 示范引领促教研 ——复兴镇小学语文课堂教学改革“五环四让”教学模式 研讨成果展示活动...
  4. SSO 单点登录解决方案
  5. 刚刚,自动驾驶路测国家规范出台:无人车即将开上更多实际道路
  6. 微软 Azure App Service 漏洞 NotLegit已存在4年,客户源代码被暴露
  7. 1 linux下tcp并发服务器的几种设计的模式套路,Linux下几种并发服务器的实现模式(详解)...
  8. 【代码笔记】iOS-手机系统版本
  9. Ubuntu14.04/16.0 安装N卡驱动
  10. netbeans莫明其妙的报错
  11. 关于“C2248 QString::QString 无法访问private成员的问题”
  12. python 中文转带音调的拼音
  13. 手把手教你用量化做复盘(一)
  14. 利用redis缓存对 list集合中的数据 进行分页操作(一)
  15. 对待“流氓”,要比流氓更“流氓”!
  16. 消息队列应用与原理剖析
  17. vue移动端兼容性配置
  18. 均线系统之详解 —— 第一讲
  19. LPC54114资料
  20. ajax的cdn,GitHub - deajax/FontFace-CDN: 字体使用CDN

热门文章

  1. chmod 命令 目录文件权限
  2. Vue实战狗尾草博客后台管理系统第七章
  3. [UE4] 解决用Sequence录制场景中视频,场景中视频被加速的情况
  4. android .so导入,android 导入so库文件
  5. TD联合Modelsim进行功能仿真
  6. MD5加密解密是什么?它有什么用途?
  7. [转载] 图片文档扫描矫正处理(手机扫描仪),OCR识别,图片修改库整合
  8. MT7603 wifi datasheet资料介绍
  9. 荣耀智慧屏X1鸿蒙,荣耀智慧屏X1体验:1699元的55寸4K大屏+鸿蒙OS体验如何?
  10. 案例 | 即刻智能助力合肥燃气集团迈入“燃气大数据时代”