Java中"=="和equals方法比较
2017-06-22 21:25
513 查看
Java中”==”和equals方法比较
java中判断两个变量是否相等有两种方式:一是使用==运算符,二是利用equals()方法。如果两个变量是基本数据类型,且都是数值类型可以使用==运算符将返回true,如果两个变量是引用数据类型,只有他们指向同一个对象时,==判断才返回true。public class Test { public statc void main(String[] args) { int ii = 100; float ff = 100.0f; // 将返回true System.out.println(ii == ff); String str1 = "zz"; String str2 = new String("zz"); // str1和str2分别指向两个不同对象,将返回false System.out.println(str1 == str2); //将返回true System.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; } @Override public 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"); // 将返回true System.out.println(p1.equals(p2)); // 将返回false System.out.println(p1.equals(p3)); } }
相关文章推荐
- java的String的equals方法和"=="比较
- 关于java中比较所用的"=="与s.equals()方法的不同
- Java 中的"=="和equals()方法比较总结。
- java中equals方法和“==”的比较
- java中equals方法和“==”的比较
- Java进阶:深入equals方法对象相等比较
- 【高薪就业必备06】 java中"=="和equals方法究竟有什么区别?
- 【java基础】==与equals()方法比较
- java中equals方法和“==”的比较
- java中equals方法和“==”的比较
- java"=="与equals()方法的对照
- 深入java的equals方法,怎么比较两个对象的内容是否相等?对象的内容指的是什么?
- java中equals方法和“==”的比较
- java中"equals"和"=="的区别比较
- Java中"=="和equals方法的区别!
- java中equals方法和“==”的比较
- java中equals方法和“==”的比较
- Java中equals方法比较的是什么?
- java中equals方法和“==”的比较
- java中equals方法和“==”的比较