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));
}

}

程序运行结果如图:

转载于:https://www.cnblogs.com/mengjingchuanshuo/p/7113043.html

Java中的==符号与equals()的使用(测试两个变量是否相等)相关推荐

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

    Java 程序中测试两个变量是否相等有两种方式:一种是利用 == 运算符,另一种是利用equals()方法. 当使用 == 来判断两个变量是否相等时,如果两个变量是基本类型变量,且都是数值类型(不一定 ...

  2. java 判断精度_随笔⑦ Java中的比较 ==,equals以及精度对比较的影响

    Java中的比较 ==,equals ① 对于==,如果是作用于基本数据类型的变量,则直接比较其存储的"值"是否相等:如果是作用于引用类型的变量,则比较的是所指向的对象的地址. ② ...

  3. JAVA中Integer的==和equals

    JAVA中Integer的==和equals注意 "equals"比较 equals(Object obj)方法,在equals(Object obj)方法中,会先判断参数中的对象 ...

  4. java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

  5. java中jdk1.8,做forEach,需要把外面的变量赋值如int,long,boolean,需要外面定义原子类型的Atomic类型,AtomicBoolean,AtomicInteger

    2022-01-05 星期三 1414 by:enAn java中jdk1.8,做forEach,需要把外面的变量赋值如int,long,boolean,需要外面定义原子类型的Atomic,如:Ato ...

  6. Java中的public static final来修饰数组与接口变量

    Java中的public static final来修饰数组与接口变量 public static final来修饰数组 final对数组的作用 怎样实现对数组的public static final ...

  7. Java中恒等条件判断:“equals”和“==”

    1. 起因:字符串恒等判断 //String is reference type String str1 = new String("hello"); String str2 = ...

  8. java中无符号类型的处理[转]

    在Java中,不存在Unsigned无符号数据类型,但可以轻而易举的完成Unsigned转换. 方案一:如果在Java中进行流(Stream)数据处理,可以用DataInputStream类对Stre ...

  9. java byte 判断相等_你真的了解Java中quot;==quot;和equals()的区别?

    部分面试资料链接:https://pan.baidu.com/s/1qDb2YoCopCHoQXH15jiLhA 密码:jsam 想获得全部面试必看资料,关注公众号,大家可以在公众号后台回复" ...

  10. java中的符号的理解^,|,~

    位逻辑运算符: &: 位与运算符,只有两个操作数都是true,结果才是true. | : 位或运算符,只有两个操作数都是false,结果才是false. ~: 位非运算符:如果位为0,结果是1 ...

最新文章

  1. 不相交集类以及应用迷宫生成
  2. 騰訊大廈有39層的問題解決方案。
  3. Python爬虫基本框架
  4. 怎样的项目才能称为“成功项目”?
  5. 【工具】Jupyter Notebook介绍
  6. Xcode怎样调整模拟器大小
  7. Mybatis构建sql语法
  8. linux-文件路径
  9. 容器编排技术 -- Kubernetes Pod概述
  10. 批量 材质 调整_寒霜引擎的PBR实践3.0(一)材质篇
  11. sap 中migo收货自动打印smartform_EWM MES/ERP集成 生产收货的几种方式
  12. font: 12px/1.5 Tahoma, Helvetica, Arial, sans-serif;
  13. Too many open files故障解决一例
  14. linux启动和grub修复
  15. 【生活】换手机号需要更改哪些绑定
  16. 人工智能导论/人工智能及其应用 期末练习题
  17. Gif录制工具--Mac篇
  18. 赛维LDK重整方案被法院强裁通过
  19. ZJYYC 活字印刷 DFS
  20. ​【AI简报 20211119 期】全球AI芯片峰会、全球首款4nm手机芯片

热门文章

  1. python做数据分析对数学要求_Python数据分析之Pandas
  2. C++11多线程中的detach()、join()、joinable()
  3. 多线程测试时的辅助类--CountDownLatch
  4. liunx中常用命令 -大数据
  5. 三级分类用sql语句怎么写(多级分类的写法)
  6. vue 初识MVC与MVVM,及其与vue基本代码之间的关系
  7. Python中 sys.argv[]
  8. 数据结构排序算法思路总结
  9. Apache Commons Compress 文件解压缩库
  10. 阶段3 1.Mybatis_09.Mybatis的多表操作_5 完成user的一对多查询操作