随笔分类 - 源码分析
摘要:前言 我们学过ArrayList之后都知道,它是一个线程不安全的集合。在多线程情况下,会出现许许多多的问题,如果别人问你,那么该如何解决?你可能会想到vector,但是其实vector也只能保证一个相对线程安全,不能保证绝对线程安全(在多线程下,我们的一个线程恰好在错误的时间里面删除了一个元素,位置
阅读全文
摘要:HashMap简介 HashMap是实现map接口的一个重要实现类,在我们无论是日常还是面试,以及工作中都是一个经常用到角色。它的结构如下: 它的底层是用我们的哈希表和红黑树组成的。所以我们在学习HashMap底层原理的时候,需要有这两种数据结构的知识做铺垫,才能有更好的理解! 哈希表 散列表是由我
阅读全文
摘要:在多线程情况下,我们的HashMap在JDK1.8之前最大的问题就是会造成环链,在JDK1.8开始之后虽然解决了环链,但是还是会因为并发的情况下,导致数据覆盖而丢失。虽然我们有HashTable和Collections下的同步器可以解决这个问题,但是这两种方案都不能算是一个优秀的解决方案,所以就有了
阅读全文
摘要:简介 List接口是类集Collection下一个比较重要的接口,它的下面有很多我们常用的实现类,而我们这次主要是介绍它的三个重要实现类! ArrayList(底层数据结构是数组,线程不安全) LinkedList(底层数据结构是链表,线程不安全) Vector(底层数据结构是数组,线程安全) Ar
阅读全文