从源码分析JDK动态代理
引言动态代理非常的重要,虽然我们在日常的工作中没有非常底层的 编写过动态代理的代码,但是动态代理却起着非常重要的功能,想一下我们经常使用的框架: 日志框架、AOP等等,所以,如果我们需要看一些框架的源码的时候,还是需要非常熟悉的掌握动态代理的原理。基本的使用这里就不在介绍了,前面的的博客已经介绍过了《java动态代理》,本篇博客主要解决下面几个问题:1、JDK动态代理基本原理2、如何调用到我们自....
java读源码 之 list源码分析(ArrayList)---JDK1.8
java基础 之 list源码分析(ArrayList)ArrayList:继承关系分析:public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable我们可以知道:继承了Abs...
面试官:从源码分析一下TreeSet(基于jdk1.8)
一、简介TreeSet的作用是保存无重复的数据,不过还对这些数据进行了排序。TreeMap的底层是通过红黑树实现的,所以TreeSet底层也是通过红黑树实现的。TreeSet最主要的特点就是对元素进行了排序。我们对其特点进行总结一下:(1)TreeSet是基于TreeMap的NavigableSet实现。(2)TreeSet的元素存储在TreeMap中的key中,TreeMap的value是一个....
Hashtable源码分析(基于jdk1.8,推荐)
一、认识Hashtable1、继承关系为了能好好的理解Hashtable,我们先看一下他在整个集合体系中的位置:从上面的图我们会发现,Hashtable和HashMap师出同门,不过这张图太宏观,我们还是放小了看这张图已经很清晰了,继承了Dictionary,实现了Map接口。2、与HashMap的区别如果你之前看过我写的那篇HashMap文章的话,在这里对他们俩的区别一定有了解,现在我们对其进....
TreeMap源码分析(基于jdk1.8)
一、认识TreeMap1、继承关系其实从名字就可以看出主要是和树有关,而且这棵树还是赫赫有名的红黑树。因为其处于java集合体系一个一个知识点,我们还是先看一下这个TreeMap处于整个集合体系的一个什么位置?从类图中我们可以看到,TreeMap继承自AbstractMap。这张图太宏观了,知道其处于一个什么位置,我们按住TreeMap别动,逐渐把视线转变成以TreeMap为中心,看一下他的继承....
HashMap源码分析(jdk1.8,保证你能看懂)
一、带着问题分析这篇文章,希望能解决以下问题。(1)HashMap的底层数据结构是什么?(2)HashMap中增删改查操作的底部实现原理是什么?(3)HashMap是如何实现扩容的?(4)HashMap是如何解决hash冲突的?(7)HashMap为什么是非线程安全的?下面我们就带着这些问题,揭开HashMap的面纱。二、认识HashMapHashMap最早是在jdk1.2中开始出现的,一直到j....
四千字从源码分析ConcurrentHashMap的底层原理(JDK1.8)
1.ConcurrentHashMap概述首先看一下官方对ConcurrentHashMap的介绍,这段介绍来自Java Platform SE8 A hash table supporting full concurrency of retrievals and high expected concurrency for updates. This class obeys the s...
LinkedHashMap 源码详细分析(JDK1.8)
1. 概述 LinkedHashMap 继承自 HashMap,在 HashMap 基础上,通过维护一条双向链表,解决了 HashMap 不能随时保持遍历顺序和插入顺序一致的问题。除此之外,LinkedHashMap 对访问顺序也提供了相关支持。在一些场景下,该特性很有用,比如缓存。在实现上,LinkedHashMap 很多方法直接继承自 HashMap,仅为维护双向链表覆写了部分方法。所以,要....
HashMap 源码详细分析(JDK1.8)
一、概述 本篇文章我们来聊聊大家日常开发中常用的一个集合类 - HashMap。HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMap 是非线程安全类,在多线....
源码分析:JDK获取默认时区的风险和最佳实践
源码分析TimeZone.getDefault() 是JDK自带的方法,所属包:java.util;方法返回此主机(程序运行的主机)的默认时区 //TimeZone类 public static TimeZone getDefault() { return (TimeZone) getDefaultRef().clone(); } 我们来看下默认时区是怎么取值...
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。