java中"=="和equals方法比较 您所在的位置:网站首页 java比较字符是否相等 java中"=="和equals方法比较

java中"=="和equals方法比较

#java中"=="和equals方法比较| 来源: 网络整理| 查看: 265

java中”==”和equals方法比较

java中判断两个变量是否相等有两种方式:一是使用==运算符,二是利用equals()方法。如果两个变量是基本数据类型,且都是数值类型可以使用==运算符将返回true,如果两个变量是引用数据类型,只有他们指向同一个对象时,==判断才返回true。

public class Test{public statc void main(String[] args){int ii = 100;float ff = 100.0f;// 将返回trueSystem.out.println(ii == ff);String str1 = "zz";String str2 = new String("zz");// str1和str2分别指向两个不同对象,将返回falseSystem.out.println(str1 == str2);//将返回trueSystem.out.println(str1.equals(str2));}}

java程序使用像”zz”字符串直接量,java虚拟机将使用常量池来管理这些字符串;当使用new String(“zz”)时,jvm先使用常量池来管理字符串,再调用String构造器创建一个新的String对象。new String(“zz”)一创建了两个字符串对象。

equals()方法是Object类提供的一个方法,其实判断两个对象是否相等equals()方法和==运算符没有区别,同样要求两个引用变量指向同一个对象的时候才会返回true。但是equals()方法可以通过重写来实现自己需要的判断标准,String就是重写了equals()方法实现了”值比较”;。

下面定义一个Person类重写equals()方法,只要idCode相同就确定是一个人。

public class Person{

private String idCode;

public Person(String idCode){this.idCode = idCode;}

public String getIdCode(){return idCode;}

public void setIdCode(String idCode){this.idCode = idCode;}

@Overridepublic boolean equals(Object obj){if (this == obj){return true;}if (obj != null && obj.getClass() == Person.class){Person p = (Person)obj;if (this.getIdCode().equals(p.getIdCode())){return true;}}return false;}

public static void main(String[] args){Person p1 = new Person("123");Person p2 = new Person("123");Person p3 = new Person("124");// 将返回trueSystem.out.println(p1.equals(p2));// 将返回falseSystem.out.println(p1.equals(p3));}}



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有