史禹的博客

ShiYu Blog

LinkedList实现原理

LinkedList实现原理 LinkedList底层采用链表结构,LinkedList定义了一个静态内部类Node: 1234567891011private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E>......

HashSet实现原理

上一篇文章介绍了HashMap的实现原理,今天研究了一下HashSet的源码,惊讶的发现HashSet是完全用HashMap实现的。 HashSet内部使用了一个HashMap对象map,并定义了一个虚拟值PRESENT用于填充在map的value,HashSet实现的原理就是利用map的key唯一特性将添加到set中的值用hashMap的key存储起来,set中add方法的实现是如果调用m......

ArrayList实现原理

##ArrayList实现原理 ArrayList,顾名思义,是底层用Array实现的List,查看源码: 1234567/** * The array buffer into which the elements of the ArrayList are stored. * The capacity of the ArrayList is the length of this array ......

HashMap实现原理

HashMap原理简述

理解Map Map的基本思想是维护键-值关联,因此你可以使用键来查找值,我们可以先自己简单实现一个Map: 12345678910111213141516171819202122232425262728293031323334353637383940package top.shixiaoyu.map;/** * 极其简单的map实现,不考虑增容、性能,仅作演示 * Created by Sh......

Java常用容器

#java容器 利用了一个月时间,浏览完了《thinking in java》,俗话说好记性不如烂笔头,何况我的记性并不好,从今天开始,将不定期将从书中学习到的知识整理出来,今天首先整理一下util包内各种类型容器之间的关系,及每种容器的应用场景,下周将逐步详细整理每种容器的具体实现。 util包内,不同类型容器之间对关系如下图: 圆形代表接口,矩形代表类,虚线代表对接口的实现,实线代......

内部类

"内部类"

将一个类的定义放在另一个类的定义内部,这就是内部类 1、为什么使用内部类 如果只是需要一个对接口的引用,直接定义一个正常的类实现接口即可以满足需求,当这样做可以满足需求时,完全没必要考虑使用内部类。但是考虑这种情况:如果你想实现一个接口,这个中的一个方法和你自己构建的类中的一个方法拥有相同的名称和相同的参数,这种情况下,我们就可以考虑使用内部类来实现这个接口,由于内部类对外部类的所有内容......

JAVA初始化顺序

java在初始化类时,成员变量、静态变量、构造器的执行顺序是什么?涉及到继承时,它们的执行顺序又是什么? 测试一: 当不涉及继承时,执行顺序测试: 1234567891011121314151617181920212223public class App{ A a1=new A("普通变量1"); static A a2=new A("静态变量1"); A ......