Java核心基础
Java核心基础
路遥才知马力
这个作者很懒,什么都没留下…
展开
-
为什么重写equals方法的同时也要重写hashcode方法
为什么重写equals方法的同时也要重写hashcode方法 注:JDK版本:1.8.0_251 首先,我们来看一下在Object类中,这两个方法是是干嘛的,现贴出代码: 在Object类中, equals方法进行相等比较,是用 == 号对两个对象进行比较。我们知道,在Java中,==比较,其实比较的是两个对象的hashcode, 我们再看看Object类的hashCode()方法: 这个方法呢,它是一个native方法,这个方法会返回当前对象的哈希散列码。 OK,现在打完了Object类的铺垫,我们再原创 2020-07-24 11:36:41 · 626 阅读 · 2 评论 -
Java中的自动拆箱与自动装箱
Java包装类的自动拆装箱 基本类型与包装的比较 我们先来看一段代码: @Test public void test() { int a = 1; Integer b = new Integer(1); Integer c = new Integer(1); System.out.println(a == b); System.out.println(b == c); System.out.println(b == c.intValue()); } 这段代码的运行结果是(运行环境:O原创 2020-07-22 19:55:55 · 96 阅读 · 0 评论 -
Java中的hashcode究竟是不是对象的内存地址
Java中的hashcode究竟是不是对象的内存地址 实验 要回答标题中的问题,我们最好的办法就是来做一个实验,那么我们如何来做这个,并且确保实验结果的正确性呢? 我们需要证明: 多个对象内存地址不一样 在上述不同内存地址的对象中找出相同hashcode的情况 实验环境: windows 10 64bit Oracle jdk1.8.0_251 实验代码如下: @Test public void test() { int total = 1000000; Set set = new Hash原创 2020-07-22 17:39:20 · 2175 阅读 · 0 评论 -
深入理解Object类
深入理解Object类 背景 在Java语言中,我们所编写的所有类都会自动继承自Object类,因此,了解其各个方法的作用是十分有必要的。 源码剖析 package java.lang; /** @author unascribed @see java.lang.Class @since JDK1.0 */ public class Object { registerNatives这个方法是为了注册native方法。 native方法就是本地方法,这些本地方法的实现其实并原创 2020-07-22 14:41:35 · 380 阅读 · 0 评论