随笔分类 -  源码分析

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