自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 二叉树的父子节点位置关系

最近在看一个堆排序的时候,发现其中一行代码涉及到二叉树的位置关系     一个节点的左节点是其父节点下标的2k+1,右节点是其父节点下标的2K+2。由于很久没复习过数据结构,突然很好奇这个结论的证明(虽然以前学习时已经证明过),然后写一份博客再加深一下。毕竟这个技术不用就很容易忘记。大家都知道二叉树一个节点有2个子节点,右节点和左节点。因此,可以将二叉树每一层的数量看做一个公比为2的等...

2018-11-27 14:05:32 9903 3

原创 concurrentHashmap红黑树的添加

 final TreeNode<K,V> putTreeVal(int h, K k, V v) {    Class<?> kc = null;    boolean searched = false;    for (TreeNode<K,V> p = root;;) {        int dir, ph; K pk;      ...

2018-07-23 22:54:00 449

原创 ConcurrentHashMap构造函数解析以及字段,存储结构类

一:字段解析(大部分):   // node数组最大容量:2^30=1073741824private static final int MAXIMUM_CAPACITY = 1 << 30;// 默认初始值,必须是2的幕数private static final int DEFAULT_CAPACITY = 16;//数组可能最大值,需要与toArra...

2018-07-21 23:42:46 1548

原创 ConcurrentHashMap模型

  1.1: ConcurrentHashMap JDK1.7结构图:数组+链表 每一个数组用一个segment作为锁,数组放值,冲突了就是链表加进去1.2:ConcurrentHashMap JDK1.8结构图:数组+链表/红黑树  注意 如果是链表结构的 就是Node 否则会转化为 TreeNote,TreeBin封装维护好TreeNote,红黑树仿的是TreeBin,Tree...

2018-07-21 23:42:05 286

原创 ReebtrantLock源码分析

本次RenntrantLock分析主要包括如下模块: ReentrantLock锁结构 公平及非公平体现之处 lock流程 unlock流程 condition模块      一:ReentrantLock源码框架如下所示(第一次画这种图,可能不正规,可以百度去看看框架图)主要结构如上图reentrantlock实现...

2018-07-20 22:28:35 463

原创 bootStrap家族介绍----3BootStrap初始化--initAndRegister

无论是服务端还是客户端,都会有一步需要调用到父类AbstractBootStrap的initAndRegister()方法,将相应的channel注册到bossReactor线程池中去。initAndRegister()方法主要分为3个部分: 创建Channel 绑定用户自定义的Handler() 将该Channel注册到Reactor中去  final Ch...

2018-07-20 22:26:20 991 1

原创 bootStrap家族介绍----1ServerBootStrap介绍

Serverbootstract字段解析:private static final InternalLogger logger = InternalLoggerFactory.getInstance(ServerBootstrap.class);private final Map<ChannelOption<?>, Object> childOptions = ne...

2018-07-19 21:50:26 1208

原创 bootStrap家族介绍----1BootStrap介绍

BootStrap是客户端启动器,只增加了一个字段private volatile SocketAddress remoteAddress;  int()方法和serverBootStrap的init()的方法相比,非常简单。在配置处理链时没有增加最后一个尾部的接收处理器。其余的和serverBootStrap的init()的方法差不多,都是初始化处理器链,初始化选项参数以及属...

2018-07-19 21:48:52 254

转载 bootStrap家族介绍----1AbstractBootStrap介绍

本章主要介绍AbstractBootStrap 以及BootStrap,ServerBootStrap  主要运用了建造者模式(bootStrap的构造)以及门面模式(不需要注意细节,屏蔽了)     一:AbstractBootStrap解析:   AbstratBootStrap:channel的工厂setteer方法public B channel...

2018-07-18 23:40:44 729

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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