Java中==符号与equals()的使用详解(测试两个变量是否相等)
时间:2019-03-30
本文章向大家介绍Java中==符号与equals()的使用详解(测试两个变量是否相等),主要包括Java中==符号与equals()的使用详解(测试两个变量是否相等)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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中==符号与equals()的使用详解(测试两个变量是否相等)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Golang 单元测试详尽指引
- Pigeon- Flutter多端接口一致性以及规范化管理实践
- Linux之PAM系统模块详解说明
- 快速上手联邦学习——腾讯自研联邦学习平台PowerFL实战
- Linux发行版的镜像网站及开源软件收集
- 自建图床应用,我只推荐 Serverless
- 手把手教你使用 Nginx Ingress 实现金丝雀发布
- Kettle构建Hadoop ETL实践(六):数据转换与装载
- 从面试角度一文学完 Kafka
- Kettle构建Hadoop ETL实践(七):定期自动执行ETL作业
- 轻松理解JVM的分代模型
- Mybatis的几种传参方式,你了解多少?
- 搭建NFS Server
- Paxos 分布式必问的内容,没有之一
- Java进阶训练营 第一周JVM 预习笔记