手写一个简单的HashMap

实现一个简单的HashMap

朋友面试,遇到了一个问题,在没有提供HashMap API的情况下,怎么实现一个HashMap

这个问题,考察的无非是对HashMap的理解,考察的HashMap的底层结构

话不多说直接上图

Java

顺序表-链表-单向链表反转

单向链表反转

预防面试被问,做个笔记

算法

顺序表-链表-双向链表

双向链表

双向链表也叫双向表,是链表的一种,它由多个结点组成,每个结点都由一个数据域和两个指针域组成,数据域用 来存储数据,其中一个指针域用来指向其后继结点,另一个指针域用来指向前驱结点。链表的头结点的数据域不存 储数据,指向前驱结点的指针域值为null,指向后继结点的指针域指向第一个真正存储数据的结点。

线性表—链表-单向链表

单向链表

单向链表是链表的一种,它由多个结点组成,每个结点都由一个数据域和一个指针域组成,数据域用来存储数据,指针域用来指向其后继结点。链表的头结点的数据域不存储,指针域指向第一个存储数据的结点。

java全局异常处理

java全局异常处理

在项目中,我们需要对各种异常进行处理,但是我们又不知道什么时候发生异常,而对每个方法进行捕获这个也不太现实这个时候就需要我们对项目中的异常进项全局的处理,下面是在我一个小型博客项目中对全局异常的处理。

对象加载过程

对象的创建

当java虚拟机遇到一条字节码new指令时

JavaJVM

java基础知识整理

自动类型转换遵循下面的规则

1、若参与运算的数据类型不同,则先转换成同一类型,然后进行运算

Java

java的重写和重载

方法重写(两同两小一大)

参数列表必须完全与被重写方法的相同。(同)

方法名相同(同)

返回类型小于或者等于重写方法的返回类型。(小)

Java

java类加载机制

java的类加载机制

当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM或通过加载、链接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这3个步骤统称为类加载或类初始化。

Java

Java中各种锁的详解

Java中多种锁的实现详解

1、synchronized和Lock

java中有两种锁的加锁方式:一种是用于synchronized关键字,另一种是用Lock接口实现类

形象地说,synchronized关键字是自动挡,可以满足一切日常驾驶需求。但是如果你想要玩其他的骚操作,就需要手动挡—各种Lock实现类

所以如果你只是想要简单的加个锁,对性能也没有什么特别的要求,用synchronized关键字就足够了。自从Java 5 之后,才在java.util.concurrent.locks包下有了另一种方式来实现锁那就是Lock。也就是说,synchronized是Java语言内置的关键字,而Lock是一个接口,这个接口的实现类在代码层面实现了锁的功能,具体实现有兴趣可以自己研究一下哦。

Java