- 博客(3)
- 问答 (1)
- 收藏
- 关注
原创 动态代理与装饰器模式的区别
这里,假设大家已经基本了解动态代理与装饰器模式。我们知道增强一个类的功能而不改变这个类的源码,我们可以有动态代理和装饰器模式这两种办法。(本文讨论的区别只是基于增强类功能的区别)那么我们该如何选择呢?这里先说我得出的结论:装饰器模式可以在不增加新的装饰类的情况下对已有的功能进行组合而得到新的功能,但得修改客户端代码才能使用新的功能。动态代理则是增加一个新的类来实现功
2017-03-29 21:11:54 4995 1
原创 Redis的字典与ConcurrentHashMap的扩容策略比较
本文介绍Redis的字典(是种Map)与ConcurrentHashMap的扩容策略,并比较它们的优缺点。(不讨论它们的实现细节)首先Redis的字典采用的是一种‘’单线程渐进式rehash‘’,这里的单线程是指只有一个线程在扩容,而在扩容的同时其他的线程可以并发的进行读写。Redis系统后台会定时给予扩容的那个线程足够的运行时间,这样不会导致它饿死。大致过程是这样的:
2017-03-20 16:08:04 2734 1
原创 JDK1.8的HashMap源码分析
这里主要讲HashMap的三个操作put和get和remove,当然这两个操作基本涵括了所有源码。先给出HashMap的一些属性和HashMap的构造器:static final int DEFAULT_INITIAL_CAPACITY = 1 4; // 默认容量为16//Map的最大容量static final int MAXIMUM_CAPACITY = 1 30;//默
2016-12-16 10:22:15 397
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人