
java
单线程小伙
这个作者很懒,什么都没留下…
展开
-
java中为什么重写equals就要重写hashcode
其实原因很简单,首先第一点原因就是约定,就是说两个对象equals返回true,那么他们的hashcode也应该相等,但其实这一点约定我们不遵守也无妨,下面的原因才是主要的。 如果我们将一个类作为hashmap的key,那么在hash的时候是根据hashcode进行hash的,而且hashmap又要求相同元素不能重复插入,那么如果hashcode不相等就会映射到不同的桶中。这时候我们判断是否插入了重复元素就会出现问题 因此,一般在重写equals的时候就要重写hashcode。 ...原创 2021-11-24 15:27:27 · 266 阅读 · 0 评论 -
一文读懂java静态绑定和动态绑定
前提:动态绑定和多态是息息相关的,动态的意思是在运行期间决定调用哪个函数,同时也可以不用重新编译就能够感知程序的变化 先说一下静态绑定吧 一些用static,final,private修饰的方式,在调用的时候就是使用的静态绑定方法,比如private修饰的方法,我们调用一个对象的私有方法,其实在逻辑上是肯定只有一个方法与之对应的(私有方法不能继承,没有任何的歧义),因此在编译的时候就可以确定运行哪一个方法。也可以想一下重载也是一样,没有继承关系的重载也是静态绑定。 接下来是动态绑定 先看一个原创 2021-11-23 14:59:15 · 397 阅读 · 0 评论