文章506
标签266
分类65
ThreadLocal源码解析

ThreadLocal源码解析

最近总结了一套阿里云的面试题, 其中有一个ThreadLocal和线程池配合使用造成内存泄露的问题. 当时写了答案但是感觉对于ThreadLocal的理解还不是特别深入, 所以想再看一下源码.


Java实现的自定义类加载器

Java实现的自定义类加载器

本文讲述了如何实现一个Java的自定义类加载器


深入剖析Java中的void和java.lang.Void

深入剖析Java中的void和java.lang.Void

在Java的源码中, 使用到了很多Void类型(这里不是关键字void, 而是Void类). 本文解析了Java中Void类与void关键字的区别与作用


Java中自动拆装箱的陷阱

Java中自动拆装箱的陷阱

摘在看《深入理解Java虚拟机》一书时看到的问题,关于Java编译器在进行解语法糖时对于自动拆装箱做出的行为,有时会造成误解或者歧义,所以在此总结一下


关于JDK8添加的Spliterator的一些理解

关于JDK8添加的Spliterator的一些理解

最近在看Java集合源码的时候研究了一下Spliterator, 发现了Spliterator的一些问题, 在这一篇中总结一下:

  • Spliterator源码解读

  • ArrayList中Spliterator的实现

  • LinkedList中Spliterator的实现

  • HashMap(Set)中Spliterator的实现


Java集合十-TreeNode与HashMap

Java集合十-TreeNode与HashMap

紧接着上一部分,这部分将深度分析HashMap中的TreeNode内部类(它是实现HashMap等链表和红黑树数据结构的类), 然后再回到HashMap中讲述HashMap中的问题, 以及HashMap的使用:

  • 数据结构Tree的发展史
  • HashMap中TreeNode的源码分析
  • HashMap中的hash冲突
  • HashMap中的Rehash操作
  • HashMap遍历方式(整表遍历, 并发遍历)

Java集合九-HashMap

Java集合九-HashMap

这一章,我们对HashMap进行学习

我们先对HashMap有个整体认识,然后再学习它的源码,最后再通过实例来学会使用HashMap。内容包括:

  • HashMap介绍
  • HashMap数据结构
  • HashMap源码深度解析(基于JDK11.0.4)

Java集合八-Map架构

Java集合八-Map架构

前面,我们已经系统的对List进行了学习。接下来,我们先学习Map,然后再学习Set;因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的)


Java集合七-List总结(LinkedList, ArrayList使用场景及性能分析)

Java集合七-List总结(LinkedList, ArrayList使用场景及性能分析)

Java集合六-Stack

Java集合六-Stack

学完Vector了之后,接下来我们开始学习Stack。Stack很简单,它继承于Vector。学习方式还是和之前一样,先对Stack有个整体认识,然后再学习它的源码;最后再通过实例来学会使用它。内容包括:

  • Stack介绍
  • Stack源码解析(基于JDK11.0.4)
  • Stack示例