一道经典的Java面试题:equals ,== 和hashcode()的区别
一句话区别:==比较的是内存地址,equals比较的是值内容
结论:
从以下三点展开:
基本数据类型、字符串、对象
- 对于基本数据类型:只有==,没有equals.
- 对于字符串:==比较的是内存地址,equals比较的是值,需要在意的是new了一个String,会产生不同的对象,内存地址会发生变化
- 对于对象:==比较的是内存地址,equals比较的是值
如: String s1="abc";
String s2="abc";
s1.equals(s2) 是true 因为equals比较的是对象的内容
而 s1==s2 是false 因为当两边的对象属于引用数据类型时,==的作用是判断对象的内存地址是否相同,s1和s2创建了不同的对象,所以内存地址肯定不同。
一道经典的Java面试题:equals ,== 和hashcode()的区别的更多相关文章
- Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)
Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例 原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...
- OpenJDK源码研究笔记(五)-缓存Integer等类型的频繁使用的数据和对象,大幅度提升性能(一道经典的Java笔试题)
摘要 本文先给出一个看似很简单实则有深意的Java笔试面试题,引出JDK内部的缓存. JDK内部的缓存,主要是为了提高Java程序的性能. 你能答对这道"看似简单,实则有深意"的J ...
- 【转】Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例
原文地址:http://www.cnblogs.com/luankun0214/p/4421770.html 感谢网友的分享,记录下来只为学习. 1.重写equals方法实例 部分代码参考http ...
- Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例
1.重写equals方法实例 部分代码参考http://blog.csdn.net/wangloveall/article/details/7899948 重写equals方法的目的是判断两个对象 ...
- java中==和equals和hashcode的区别详解
一.相同点 都是用来进行值或对象的比较. 二.不同点 对于“==”而言,对于基本类型(char,byte,short,int,long,float,double,boolean),对比的是值,所以是相 ...
- 遇到一道经典的java面试题
在文件 nameList.txt 中按下图格式存放着超过50万人的姓名与身份证信息.请使用您熟悉的编程语言(Java或C/C++)编写一段程序, 将出生日期落在1995年1月1日与1999年12月31 ...
- Java面试题之Java中==和equals()和hashCode()的区别
“==”: ==是运算符,用来比较两个值.两个对象的内存地址是否相等: “equals()”: equals是Object类的方法,默认情况下比较两个对象是否是同一个对象,内部实现是通过“==”来实现 ...
- Java 中的 equals,==与 hashCode 的区别与联系
一. 关系操作符 ==:若操作数的类型是基本数据类型,则该关系操作符判断的是左右两边操作数的值是否相等若操作数的类型是引用数据类型,则该关系操作符判断的是左右两边操作数的内存地址是否相同.也就是说,若 ...
- Java中==、equals、hashCode的区别
"=="是运算符,用来比较两个值.两个对象的内存地址是否相等: "equals"是Object类的方法,默认情况下比较两个对象是否是同一个对象,内部实现是通过& ...
随机推荐
- SpringCloud 别人的主页
https://www.cnblogs.com/xuwujing/ java(28) springBoot(14) 设计模式(14) springcloud(7) hadoop(7) hive(5) ...
- windows电脑ssh连接安卓termux
最近跟风一个优秀的同事玩起了termux,明明一个简单的ssh,搞了我两天,差点崩溃 一怒之下,觉得很有必要写一篇博客警醒自己 初期,在某某荚下载了高级终端,然后跟着教程配置(https://www. ...
- Python——XPath提取某个标签下所有文本
/text()获取指定标签下的文本内容,//text()获取指定标签下的文本内容,包括子标签下的文本内容,比较简单的是利用字符串相加: room_infos = li.xpath('.//a[@cla ...
- cin快读
ios::sync_with_stdio(false); \\取消同步,cin,cout的速度就不慢了!!
- 解决 Electron 5.0 版本出现 require is not defined 的问题
Electron已经发布了5.0正式版,升级后发现原来能运行的代码报错提示require is not defined 经查相关资料,原来官方在5.0版本修改了nodeIntegration的默认值, ...
- XGBoost 引入 - 提升树
认识提升树 这个boosting 跟 Adaboost 不同. Adaboost 是通过上一轮的误差率来动态给定一下轮样本不同的权重来学习不同的模型. 现在的方式, 更多是基于残差 的方式来训练. 一 ...
- C# Net 合并int集合为字符串,如:输入1,2,3,4,8 输出1~4,8
C# Net 合并int集合为字符串,如:输入1,2,3,4,8 输出1~4,8 粘贴代码使用: /// <summary> /// 合并int集合,如1,2,3,4,8 输出1~4,8 ...
- 国内不fq安装K8S四: 安装过程中遇到的问题和解决方法
目录 4 安装过程中遇到的问题和解决方法 4.1 常见问题 4.2 常用的操作命令 4.3 比较好的博客 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国 ...
- Windows Server 2008 R2(x64) IIS7+PHP5.6.30(FastCGI)环境搭建
相关软件下载: 1.PHP下载地址: http://windows.php.net/downloads/releases/ 1.安装Microsoft Visual C++ 2012 Redistri ...
- 第11节-BLE协议HCI层的硬件接口
本篇博客由韦东山视频整理所得 如何控制链路层让其发出广播包.数据包?通过HCI层向它发出命令,也可以通过ATT层.L2CAP层向LL层发出数据. 学习资料: 蓝牙协议core_v5.0.pdf < ...