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. Redis--发布订阅模式
  2. 生成arff文件,csv转为arff
  3. html图片通过照片查看器打开图片,在Windows7中打开照片,提示“Windows 照片查看器无法显示此图片,因为计算机上...
  4. winform中鼠标放上去显示气泡提示信息
  5. centos 6.8安装git_git 入门教程之 git 私服搭建教程
  6. java sbyte_Java Byte parseByte()方法
  7. 计算机图形学在线作业,电子科大16秋《计算机图形学》在线作业3答案
  8. iPhone 14 Pro或配备8GB内存:苹果史上开天辟地的升级
  9. bgp协议 怎么知道相邻路由的ip地址_三级网络技术考前选择题1—BGP
  10. python怎么判断日期是星期几_【Java编程基本功】(八)逆序输出、是否为回文数,判断星期几,升序排列...
  11. 在线编辑Excel——插入图表
  12. ubuntu16安装Times New Roma字体 / WPS 安装Times New Roma字体
  13. 出租车语音全自动服务器,出租车语音提示器工作原理
  14. python课程设计结果分析_python课程设计报告总结和体会
  15. Android 视频播放 界面变形处理
  16. 中国移动车联网 V2X 平台白皮书
  17. 双鱼直播动态调试 .so文件输出密匙
  18. Android USB 主机模式
  19. QT程序到arm板(s5pv210)的移植之旅
  20. 在visio里面插入带圆圈的数字字符。

热门文章

  1. Stata:普通年金现值系数表
  2. 介绍一下cpu主频越高越好吗?
  3. vivo pad或引领新一轮的平板使用体验变革
  4. B2C暴利行业之保健品行业
  5. 解决Sublime Text4编辑器中文乱码的问题(2022.09)
  6. SDL2源代码分析5 更新纹理(SDL UpdateTexture )
  7. c语言奥林匹克大赛真题,全球首发!1-58届国际数学奥林匹克真题及解析大合集,350道必刷、必看、必收藏的巅峰之题与巧解妙解......
  8. 顶级架构师应该知道的99件事
  9. 第十二章、Designer中的menu菜单、toolBar工具栏和Action动作
  10. 苹果电脑拷贝文件到u盘很慢_电脑文件需要拷贝到另外一台电脑,U盘太慢怎么办?一根网线解决你的烦恼...