- 博客(7)
- 资源 (1)
- 收藏
- 关注
原创 HashMap硬核源码分析
实现接口: //1、HashMap继承了抽象Map接口 实现了可复制、可序列化接口 public class HashMap extends AbstractMap implements Map, Cloneable, Serializable {}属性://表示数组的默认大小是16 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; //表示数组的最大值 static final int MAXIMUM_CAPAC
2021-08-16 16:33:25
579
原创 FutureTask原理及源码分析
清简介:FutureTask 是一个可取消的、可获得执行结果异步任务,通过线程池ExecutorService 来执行FutureTask。FutureTask类 实现了RunnableFuture接口,而RunnableFuture 继承了Runnable和Future接口,所以本质上 FutureTask是Runnable的一种实现。我们先来一张工作原理图:总之:同一时间,N个线程争抢一个FutureTask,只有一个线程(比如A)...
2021-07-01 13:56:43
405
原创 Java中的集合框架
背景在我们的日常开发中经常会使用到集合,比如ArrayList、HashMap等,你是不是平时就只用这俩?哈哈 别装就是说的你,开个玩笑。集合框架是在Java.Util包下的,它是从Java1.2才开始完善的,在此之前呢,也有几个比如Vecctor、Dictionary等。Collection我们来简单看一下Java整个集合框架的架构:在介绍之前先说一下:任何架构(我认为是的),都具有高度的抽象思维,大师们会把最公共的功能抽象成为接口,比如这里最顶层接口Collection / Ma..
2021-05-26 15:50:21
186
1
原创 商品定时上下架的解决方案
在电商系统中会存在这样一种业务场景,在后端管理系统中设置商品,比如:在前端H5界面、小程序、APP之类的展示这些已上架的商品对吧, 这样的场景并不一定要求是实时的或者说一定要达到秒级这样的对吧,有个几秒钟的延时也很正常。所以基于定时上下架的场景有几种解决方案(我想到的哈,有不足的地方或者大佬还有更好的方式欢迎指导,小弟感激不尽):1、最常规的:定时任务轮询嘛对吧。关于单机定时任务,可以看一下这篇文章:https://www.jianshu.com/p/7fc2e3834899关..
2020-08-31 23:32:52
5591
4
原创 LinkedList源码分析(Java8)
LinkedList1、特点底层是一个链式结构的集合是双向链表,当前节点都会保存前一个节点的引用和后一个节点的引用在内存空间中存储不是连续的,并且也不是循序的允许空值存在2、 构造方法(1)无参: public LinkedList() { }(2)包含另一个集合: public LinkedList(Collection<? extends ...
2020-01-16 14:39:04
137
原创 ArrayList源码分析(Java8)
ArrayList集合1、特点:- 底层是Object[] 的数组- 在内存中是连续的内存空间、并且按照顺序进行存储的- 允许有空值存在- 初始化大小为10*注意:1、因为是连续的存储空间,所以在查找某个位置数据是很快的,往中间插入数据是很慢的。2、只有同一种数据类型的数据才可以放在同一个数组当中。3、在往集合添加数据的时候需要检查集合是否需要扩容,扩容操作对于性能而言消耗是很...
2020-01-16 12:03:54
190
原创 设计模式1.0.0
自我介绍: 笔者非科班出身而且也非计算机专业,从2017年5月份才正式参加Java开发工作的,写博客的目的是笔者想做一个笔记,平时看看、帮助笔者加深对知识点的印象。文章内容和观点都是笔者自己的想法和认知,可能看起来很臃肿和浅显,如果有大神偶然间看到这篇文章,看到笔者有什么理解不到位或不准确的地方,还请多多指点,晚辈感激不尽。啥是设计模式? 设计模式:是软件开发人员在开发过程中遇到一些问题的...
2018-07-01 16:16:40
214
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人