equal、hashcode、==

转载 2013年12月04日 10:21:41

文章摘抄至 http://shuofenglxy.iteye.com/blog/901159

 

java 中有值类型和对象类型:

1、对于值类型,那只能用==来比较了。

2、对于对象,则可以用==来比较是否引用的为同一个对象;用equals来比较对象的值是否相同。这么看string的==和equal的区别就简单了吧? string就是对象嘛。另外注意,对于string,会放在常量池中,除非用特定的new来创建字符串对象,其他情况都会看该池中存在不存在,如果存在,就复用。不存在,才去新建。 hashcode是存储对象的位置,通过hashcode可以找到对象,java collection中用hashcode可以检验set中重复问题。hashcode算法就比较多了,求模取余,加1 解决冲突等等。

相关文章推荐

重写equal 的同时为什么必须重写hashcode?

重写equal 的同时为什么必须重写hashcode? hashCode是编译器为不同对象产生的不同整数,根据equal方法的定义:如果两个对象是相等(equal)的,那么两个对象调用hashCod...

JAVA中堆、栈、常量池以及equal,==,hashcode的理解

以下是本人学习JAVA时的一点理解和感悟,如果有不对的地方还请大家批评指正。 JAVA和C语言一个很大的不同就是: 在C语言中我们可以通过“&”很容易的获取一个对象的地址,而在JAVA中,...

java——堆、栈、常量池、equal、==、hashcode

参考:http://blog.csdn.net/andy_miao858/article/details/8302309 JAVA和C语言一个很大的不同就是: 在C语言中我们可以通过“&”...

java hashcode和equal总结

原地址:http://blog.csdn.net/pingnanlee/article/details/17228579 hashCode和equal两个方法都是Object基类定义...
  • sxqzxj
  • sxqzxj
  • 2015年05月11日 15:25
  • 184

深入理解容器系列片之五--------hashcode和equal

1、在jdk源码中,hashcode和equal是怎么定义的 public native int hashCode();public boolean equals(Object obj) { ret...

重写equal 的同时为什么必须重写hashcode

默认的equals只判断对象是不是同一个对象。 但是有时候即使不是同一个对象,我们也认为相等。例如我定义一个复数类,只要实部和虚部都相等,我就认为两个对象相等(即使它们不是同一个对象)。 最直接的...

Java中 == equal hashcode

1. '=='是用来比较两个变量(基本类型和对象类型)的值是否相等的, 如果两个变量是基本类型的,那很容易,直接比较值就可以了。如果两个变量是对象类型的,那么它还是比较值,只是它比较的是这两个对象在栈...

Java 中equal() 方法与==的区别以及 equals()与 hashCode()方法重写

本篇文章主要讲述 hashCode和equals方法 以及他们的重写,主要分以下几点进行讲述:1、”==” 与 equals() 的区别2、hashCode()和equals()的用法 “==” 与 ...

重写equal 的同时为什么必须重写hashcode?

hashCode是编译器为不同对象产生的不同整数,根据equal方法的定义:如果两个对象是相等(equal)的,那么两个对象调用 hashCode必须产生相同的整数结果,即:equal为true,ha...
  • jdsjlzx
  • jdsjlzx
  • 2017年01月13日 14:43
  • 1132

重写equal 的同时为什么必须重写hashcode?

重写equal 的同时为什么必须重写hashcode? hashCode是编译器为不同对象产生的不同整数,根据equal方法的定义:如果两个对象是相等(equal)的,那么两个对象调用hashCod...
  • xxn2008
  • xxn2008
  • 2015年05月16日 15:51
  • 222
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:equal、hashcode、==
举报原因:
原因补充:

(最多只允许输入30个字)