2018年7月24日

HashMap 数据结构分析

摘要: 这篇文章主要说清楚HashMap底层数据结构,以及底层数组大小为什么是2的整数次幂。 注:该源码基于JDK8 1、HashMap 数据结构? HashMap 底层数组结构刚开始是数组+链表实现,但是当链表上的节点多余一定值(8)的时候,将链表换成红黑树。 2、我们从 put(K key, V val 阅读全文

posted @ 2018-07-24 18:18 tspeking 阅读(314) 评论(0) 推荐(0) 编辑

2018年7月18日

JAVA NIO原理剖析

摘要: 本文不打算讲解BIO怎么用?NIO如何用?本文重点是NIO底层原理。 本文打算从以下几个方面讲解: 1、BIO通讯模型(网络方面)是什么? 2、NIO通讯模型(网络方面)是什么?解决了什么问题? 1. BIO通讯模型 模型解释: BIO场景下,客户端(Client)发起连接请求,服务端接收到请求后, 阅读全文

posted @ 2018-07-18 15:07 tspeking 阅读(1598) 评论(0) 推荐(0) 编辑

2018年7月12日

JDK线程池原理剖析

摘要: 这篇文章不打算讲解什么是线程池?线程池怎么用?直接讲解原理 1、线程池关键参数解释 JDK 线程池的实现类是 ThreadPoolExecutor,构造函数关键参数解释如下: corePoolSize 核心线程,线程池维持的线程数量,即使没有任务执行也会维持这个数量不变,除非设置了 allowCor 阅读全文

posted @ 2018-07-12 10:11 tspeking 阅读(484) 评论(0) 推荐(3) 编辑

2018年6月13日

设计模式之策略模式

摘要: 1、什么是策略模式? 策略模式指定义一组算法簇,并且每一个算法都有自己具体的算法实现,算法的使用可以根据业务需要在客户端进行替换。 2、策略模式角色 2.1 抽象策略角色 抽象策略角色(Istrategy)定义了算法功能。 2.2 具体策略角色 具体策略角色实现了抽象策略角色中定义的算法。 2.3 阅读全文

posted @ 2018-06-13 11:06 tspeking 阅读(268) 评论(0) 推荐(0) 编辑

2018年6月12日

设计模式之观察者模式

摘要: 1、什么是观察者模式? 观察者模式就是一种对象间一对多的依赖关系,当对象的状态改变时,通知所有依赖该对象的对象去做信息处理。 2、观察者模式具体实现角色关系 2.1 抽象主题角色 抽象主题角色定义了可以注册、删除和通知观察者的行为 2.2 具体主题角色 具体主题实现了抽象主题功能 2.3 抽象观察者 阅读全文

posted @ 2018-06-12 14:53 tspeking 阅读(112) 评论(0) 推荐(0) 编辑

2018年6月8日

设计模式之单例模式

摘要: 1、什么是单例模式? 单例模式就是一个类只会有一个实例。 2、单例模式实现方式 2.1 懒汉模式 /** * 保证该类只会生成一个类实例 */ public class LayzSinglePattern { private static LayzSinglePattern instance ; / 阅读全文

posted @ 2018-06-08 11:40 tspeking 阅读(498) 评论(0) 推荐(0) 编辑

2018年4月13日

比特币

摘要: 1、什么是比特币? 比特币是一种可以在P2P网络(比特币网络)中发行和使用的虚拟货币。 2、比特币实现原理 比特币底层是通过区块链实现的,而区块链具备去中心化、数据不可篡改和共同维护等特点。区块链主要依托于P2P网络、密码学技术和共识算法。 2.1什么是区块链? 区块链是一个全网(加入某一种币网络, 阅读全文

posted @ 2018-04-13 17:03 tspeking 阅读(142) 评论(0) 推荐(0) 编辑

2018年4月10日

细谈以太坊

摘要: 以太坊,就是通过共识算法来实现的一个分布式账本。以太坊号称区块链平台,实际上原理和比特币一样,都是通过密码算法和以金钱激励为基础的共识算法来让矿工(记账人员)正确的记账(并不是一定正确记账,也可以选择恶意记账,但是恶意记账的成本比收益高),从而形成一个在以太网络上人人可见的一个唯一的分布式账本,这个 阅读全文

posted @ 2018-04-10 16:44 tspeking 阅读(118) 评论(0) 推荐(0) 编辑

2018年3月27日

深入理解ThreadLocal

摘要: 1、什么是ThreadLocal ? ThreadLocal 是一个用来为每一个线程保持一份公共变量的值(注意:这个值是和线程绑定的,每个线程持有的值不同)。 2、ThreadLocal 有什么作用? 主要用来实现多线程并发,一般同步和锁实现的多线程并发是通过时间换空间的形式实现,即多个线程排队等待 阅读全文

posted @ 2018-03-27 11:31 tspeking 阅读(117) 评论(0) 推荐(0) 编辑

导航