java读书笔记----equal和==的区别
来源:互联网 发布:会员积分管理系统源码 编辑:程序博客网 时间:2024/06/05 13:36
equal和“==”都是表示相等的意思,但是它们在进行实际的相等判定的时候,却有着非常大的区别
先看看一个例子
public class EqualTest{ public static void main(string[] args){ String str1 = "abcd";String str2 = "abcd";String str3 = new String("abcd");System.out.println(str1==str2);System.out.println(str1==str3);System.out.println(str1.equals(str3)); }}
以上代码中定义了三个字符串变量,它们的值都是"abcd",按理来说,它们的结果应该都是true。但是事实上,它们执行得结果是
true
false
true
第二个为false的原因在于str1和str3指向的是不同的对象。
==运用在基本数据类型的时候,通过比较它们的实际值来判定是否相同;但是用于比较引用类型的时候。则是比较两个引用的地址是否相同,也就是说是否指向同一个对象。通过new string()来创建的字符串会单独生成一个对象,所以str1和str3指向的并不是同一个对象。java的双引号表达式本身就会创建一个字符串对象。
equal()方法是java.lang.Object的方法。也就是说所有的java类都会有这个方法。它可以被覆盖重写,通过自定义的方式来判定两个对象是否相等,其中默认的方式与==相同。但是java.lang.String类并不同,它是不可以被继承的。它的equal()方法用来比较字符串的字符串序列是否完全相等。
如:
public class Student {private String name;private int age ;public Student(String name ,int age){this.name = name;this.age = age;}public boolean equals(Object object){Student student = (Student) object;return this.name.equals(student.name)&&this.age==student.age;}}public class EqualTest {public static void main(String[] args) {Student stud1 = new Student("liming", 11);Student stud2 = new Student("liming", 11);System.out.println(stud1.equals(stud2));}}
执行结果为true
- java读书笔记----equal和==的区别
- java equal和==的区别
- java equal和==的区别
- java equal和==的区别
- = 和 equal 的区别
- Java的 "==" 和equal()的区别
- Java的equal和==的区别
- java中“==”和equal()的区别以及equal()的重载
- java里==和equal的区别
- java中equal 和 ==的区别
- Java中equal和"=="的区别
- java中equal()方法和==的区别
- Java中equal和"=="的区别
- Java中equal和==的区别
- JAVA中“==”和"equal"的区别
- java学习笔记2--“equal和==的区别”
- Java中equal和"=="的区别
- java中==和equal的区别
- oracle备份还原
- 八零后活的并不轻松
- jQuery中的toggle方法
- C语言_大小端与union
- oracle 创建
- java读书笔记----equal和==的区别
- JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度
- 三、基本语句
- linux接收函数recv
- MyEclipse快捷键大全
- 我做前端一年半
- 计算机系统维护培训资料整理
- Android下结束进程的方法
- Sicily 2500---看风景