自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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关注的人

提示
确定要删除当前文章?
取消 删除