java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 程序设计语言和 Java 平台(即 JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
下面小编就为大家带来一篇 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()的使用详解 (测试两个变量是否相等) 就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 PHPERZ。
来源: http://www.phperz.com/article/18/0104/356656.html