Java中==号和equals()方法的区别
来源:互联网 发布:淘宝网首页布局介绍 编辑:程序博客网 时间:2024/05/01 05:10
Java中==号和equals()方法的区别
- 共同点:
- 都可以作比较,返回值都是Boolean
区别:
1、 == 是比较运算符,它既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
2、equals方法只能比较引用数据类型,在重写之前,比较的是地址值,底层依赖的是==号,功能等价,但是比较地址值是没有意义的,所以我们需要重写equals()方法比较对象中的属性值
- 3、引用数据类型
- 如果相互比较的两个对象是常量,则对象地址值是指向常量池中的常量值,如果值相等,则指向的是同一个常量,所以地址值也想等。
- 如果相互比较的两个对象中至少有一个是用构造方法创建的,则其地址值指向的是两个不同的对象,所以地址值不想等。
/** *Object中的equals()方法 *功能 :将Object对象的地址值返回 *通俗理解 :没什么卵用,就是给 == 穿了件衣服 */ public boolean equals(Object obj) { return (this == obj); }
- 如果需要比较引用类型数据中的属性值,则需要重写Object中的equals()方法,比如String类中就重写了该方法
/** *String类中重写了Object中的equals()方法 *功能 :将此String对象与指定的对象比较。当且仅当该参数不为 null,并且是与此对象表示相同字符序列的 String 对象时(即属性值相同),结果才为 true。 *通俗理解 :比较两String对象中属性值是否相同,与地址无关 */ public boolean equals(Object anObject) { if (this == anObject) { return true; } if (anObject instanceof String) { String anotherString = (String) anObject; int n = value.length; if (n == anotherString.value.length) { char v1[] = value; char v2[] = anotherString.value; int i = 0; while (n-- != 0) { if (v1[i] != v2[i]) return false; i++; } return true; } } return false; }
阅读全文
0 0
- Java中equals方法和==号的区别
- Java中equals()方法和==的区别
- Java中equals()方法和“==”的区别
- java中==和equals()方法的区别
- java中equals方法和“==”的区别
- java中equals方法和“==”的区别:(转)
- java中equals方法和“==”的区别
- java中equals方法和“==”的区别
- JAVA中==和equals方法的区别
- java中equals方法和“==”的区别
- Java中equals方法、==和hashCode的区别
- Java中==和equals()方法的区别
- Java中 ==和equals方法的区别
- Java中equals方法和==的区别
- Java中==和equals方法的区别
- JAVA中equals方法和==的区别
- Java中equals方法和==的区别
- java中equals方法和“==”的区别:
- 代码分析虚继承类的所占内存大小问题
- ubuntu16.04安装mysql
- python操作excel表格
- 下拉菜单的实现
- 求解最小生成树——kruskal算法模板
- Java中==号和equals()方法的区别
- 乘法逆元
- Lintcode移动零
- Unity 进度条
- Python中的random模块(总结)
- 微信小程序例子——获取自己所处的位置坐标
- hdu 4472 Count(简单递推)
- STL中的multimap---顺便说说如何查找同一关键字对应的所有值(利用count, lower_bound/upper_bound, equal_range)
- C++ 基础知识四