- 博客(6)
- 收藏
- 关注
原创 对ConcurrentHashMap1.7的一些理解
ConcurrentHashMap 1.7 数据结构:每一个实际存放元素的HashEntry数组由不同的Segment锁保护,HashEntry是一个链表。 1.put put时先定位到Segment上, s = (Segment<K,V>)UNSAFE.getObject(segments, (j << SSHIFT) + SBASE) ...
2019-11-15 12:28:37 181 1
原创 HashMap1.8put过程源码转伪码表述
HashMap 1.8 put 调用putVal方法 putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) ,onlyIfAbsent参数为冲突时是否覆盖原值,此处传false,覆盖原值。 使用hash(key)方法获取第一个参数。如果key为null,该方法返回0,所以可以存null键 putV...
2019-08-19 11:34:49 472
原创 个人对策略模式和状态模式的理解
半年前学习了《大话设计模式》中的状态模式和策略模式,前几天回顾了一下,对这两个模式有了新的见解。 根据一个接口设计不同算法的实现就是策略模式,其实说白了就是多态。一般和简单工厂结合起来,工厂用来选择实例化哪个对象。 状态模式和策略模式很像,但是它不需要和工厂结合,“工厂选择实例化哪个对象”到这个模式中被替换为了状态链。相较策略+工厂,状态模式将简单工厂中大量的if-else(switch-ca...
2019-08-19 09:19:12 128
原创 java类加载的加载阶段
java类加载过程中的加载阶段 1.概述 类加载包括加载,连接,初始化三个阶段。本文主要介绍加载阶段。 2.概念 List item 2.类加载器 (1)BootStrap Loader启动类加载器 (2)Extension Loade (3)App Loader ...
2018-11-19 21:22:40 397
原创 代理模式和java中的动态代理
1.代理模式 为什么使用代理模式? 当处理实际的业务逻辑之前或者之后,想要处理一些别的事。比如吃饭是我真实要做的事情,但是在吃饭之前我必须要做饭,之后必须要洗碗。 做饭洗碗可以让别人代做。 吃饭接口 package com.wch.api; public interface IChifan { void Chifan(); } 吃饭实现 package com.wch.impl; im...
2018-11-17 15:32:22 117
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人