关于==和equals的小结
来源:互联网 发布:linux性能监控 知乎 编辑:程序博客网 时间:2024/06/05 14:38
等号:比较的是地址
1.基本类型的比较:
因为基本类型都是存在栈里面的,Int a=3;当你int b=3的时候,jvm会干嘛呢?首先,它会去栈里面找是不是已经有一个数据为3了。如果不是的话新建一个地
址,是的话,就把b指向这个地址,所以对于基本类型来说,当值相同的时候,地址也是相同的,所以当你对基本类型==的时候,内容相同的肯定返回的是true因为实质上,他们的地址也是相同的.
2.引用类型的==:
2.1 String类型
字符串不是基本数据类型,而是对象。 java采用不变模式来设计了字符串对象。
约定为如果不强制使用 new 运算符而是直接给值的话,如果内容相同,那么两者是同一个对象
所以 str2是强制使用了new String(); 强制要求系统生成一个新的对象,而不是获取己有对象的别名。
2.2其他引用类型==:
很明显,通过for循环new了5个User类的对象,如果list不包含当前对象的hash值,就加入到list对象中。List的大小为5,说明每new一个User对象,都是存在堆里面的动态分配内存,所以==的时候,当然内存地址是不一样的。
Equals:比较的hashcode(hash值)
1.String类型
只要值相同,hashcode相同,那么equals方法返回就为true
2.其他引用类型
0 0
- 关于==和equals的小结
- 关于HashCode和Equals的小结
- 关于“==”和“equals”的区别
- 关于Equals 和== 的区别
- 关于==和equals的区别
- 关于Equals 和== 的区别
- 关于String的==和equals
- 关于equals 和 == 的理解
- 关于equals和==的总结
- 关于 “Equals”和“==”
- 关于 == 和 equals
- 关于“==”和“equals()”
- 关于 == 和 equals
- 关于equals和==
- equals || == 小结
- 关于字符串==和equals的区别 ==对象相同 equals对象内容相同
- 关于equals()和==操作的一点理解
- 关于hashCode,equals和==的一点个人意见
- Android万能适配器
- LeetCode---Majority Element
- windows32位下安装Redis+连接PHP
- Android中Application、静态变量和Sharedpreferences的使用与区别
- eclipse调试之edit source lookup path解决方案
- 关于==和equals的小结
- 那些年我们一起用过的软件
- 欢迎使用CSDN-markdown编辑器
- git之 git checkout
- mysql 事物小测试
- PRML第一章_易混淆概念-先验后验&生成判别&分类回归
- OWC 绘制3D柱状图
- php end()函数与current()函数
- Android实战简易教程<二十六>(基于ViewPager实现微信页面切换效果)