java中"=="和equals方法比较 | 您所在的位置:网站首页 › java比较字符是否相等 › java中"=="和equals方法比较 |
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 实验室设备网 版权所有 |