浅析java中 == 和equals的区别
来源:互联网 发布:vb.net winhttp 编辑:程序博客网 时间:2024/06/05 20:43
"=="操作符的作用
1.对比基本数据类型的值是否相等
2.对比引用在对内存中的引用内存是否相同
equals的作用
对比两个不同对象的内容是否相同
equals所在位置:
在Object类当中,而Object是所有类的父类,包含在jdk里面,但并不适合绝大多数场景,通常需要重写
public boolean equals(Object obj) { return (this == obj); }
用几个简单例子轻松了解区别
例子1.两个变量名不同 赋值相同
结论:如果String缓冲池内不存在与其指定值相同的String对象,那么此时虚拟机将为此创建新的String对象,并存放在String缓冲池内。
如果String缓冲池内存在与其指定值相同的String对象,那么此时虚拟机将不为此创建新的String对象,而直接返回已存在的String对象的引用。
所以此时两个变量引用地址相同 用== 跟equals结果相同
例子2.两个String对象引用不同,内容相同结论:两条new语句创建了两个对象,然后这两个变量分别指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的,即两个引用中存储的数值(引用地址值)是不相同的,所以用==会返回flase 而用equals 会返回true
例子3.两个Object对象引用不同 内容相同
结论:如果一个类没有自己定义equals方法,它默认的equals方法(从Object类继承的)就是使用==操作符,也是在比较两个变量指向的对象是否是同一对象,这时候使用equals和使用==会得到同样的结果,如果比较的是两个独立的对象则总返回false。
1 0
- 浅析java中 == 和equals的区别
- 浅析java中“equals”和“==”区别
- JAVA中String的“==”和equals()浅析
- Java中==和equals的区别,equals和hashCode的区别
- Java中==和equals的区别,equals和hashCode的区别
- Java 中==和 equals 的区别, equals 和 hashCode 的区别
- Java中==和equals的区别,equals和hashCode的区别
- Java语法----Java中equals和==的区别
- Java语法----Java中equals和==的区别
- Java语法----Java中equals和==的区别
- Java语法----Java中equals和==的区别
- Java 中 equals 和 == 的区别和联系
- Java中==和equals的区别和联系
- 深度浅析 == 和 equals 的区别
- java中字符串的equals和==的区别
- java中 ==和 equals区别
- java中"==" 和 equals区别
- Java中equals和==区别
- Matlab编程与数据类型 -- 出错处理语句try/catch/end
- 给定输入的字符串,将字符串中的单词顺序颠倒,但要保持单词的字符顺序。
- MySQL的初步使用(2)———SQL语句DRL详解
- Building a Space Station
- CSS盒子模型各属性层级及基础知识
- 浅析java中 == 和equals的区别
- deamon守护进程
- MPI Maelstrom POJ 1502
- python Bug | ImportError: No module named _curses
- 38、批量改变对象的属性
- BZOJ 1087: [SCOI2005]互不侵犯King 预处理,状压DP
- 1048. Find Coins
- vue 第五节
- Android编程权威指南(第二版)学习笔记(二十)—— 第20章 样式与主题