前言 本节从装饰者模式到Java 里的 IO。装饰者模式能够在不修改任何底层类代码的情况下,给你的(或别人的) 对象赋予新的职责。属于结构型设计模式。符合开闭原则,但是会产生更多的类,提高程序复杂性。 代码实现 UML 角色:抽象的实体类,确定的实体类。抽象的装饰者,确定的装饰者。 Java I/O ...
分类:
其他好文 时间:
2020-05-23 11:15:29
阅读次数:
52
介绍 Facades 为应用的 IoC 服务容器 的类提供了一个静态的接口。Laravel 里面自带了一些 Facades,如Cache等。Laravel 的门面作为服务容器中底层类的“静态代理”,相比于传统静态方法,在维护时能够提供更加易于测试、更加灵活、简明优雅的语法。 解释 在 Laravel ...
分类:
其他好文 时间:
2020-04-20 00:54:33
阅读次数:
102
要点 ConcurrentHashMap是HashMap的线程安全版本; 不允许[key,value]为null; 比Hashtable锁粒度更细; 采用CAS和synchronized来保证并发安全。数据结构跟HashMap1.8的结构一样,数组+链表/红黑二叉树; 负载因子0.75; 默认初始化 ...
分类:
编程语言 时间:
2020-04-16 19:40:58
阅读次数:
76
在原子类持续累加或累减时,比如AtomicInteger的incrementAndGet时,是不存在ABA问题的,但compareAndSet或者updateAndGet是可能存在ABA问题,像AtomicBoolean或AtomicLong等这样的变量在多线程修改时,也都存在ABA的问题。为了理解 ...
分类:
编程语言 时间:
2020-04-16 11:42:37
阅读次数:
105
一:概述 - Redis 源码版本为3.0.0. - Redis 集合命令请戳。 - OBJECT ENCODING key 查看数据底层类型实现。 二:集合对象的底层实现 - 编码方式 - 字符串对象共有两种编码方式 intset(整数集合) / hashtable(字典) - 编码方式的选择 - ...
分类:
其他好文 时间:
2020-04-13 13:51:38
阅读次数:
84
几个要点 HashTable底层的数据结构基于链表(O(n))的数组; HashTable不允许空key和空value; HashMap元素非按照写入时顺序排序,而是按Key的hash取n模来排序(算法优化采用(n - 1) & hash) HashTable线程安全类,但它是直接在方法上使用syn ...
分类:
编程语言 时间:
2020-04-11 13:29:11
阅读次数:
102
Unsafe 类是JDK底层类库提供的、基于Java内存模型访问底层的机制,通过该类可以实例化对象、直接操作堆外内存(直接内存)、CAS原子操作等。Java基于AQS实现的同步工具类、并发容器,Netty对堆外内存的操作都基于该类实现。 获取Unsafe实例 中提供了静态方法 可以直接获取到 对象, ...
分类:
其他好文 时间:
2020-01-29 19:51:07
阅读次数:
92
反射 类加载 类在内存中的生命周期:加载-->使用-->卸载 当程序主动使用某个类时,如果该类还未被加载到内存中,系统会通过加载、连接、初始化三个步骤来对该类进行初始化 类的加载又分为三个阶段: (1)加载:load 就是指将类型的class字节码数据读入内存 (2)连接:link ①验证:校验合法 ...
分类:
编程语言 时间:
2019-12-25 01:35:10
阅读次数:
82
1.底层类 package com.gxuwz.spring_thymeleaf.entity;public class Person { private String name; private Integer age; public Person(){ super(); } public Per ...
分类:
编程语言 时间:
2019-11-10 17:16:32
阅读次数:
113
.NET Core正式发布之后,我为.NET Core度身定制的AOP框架Dora.Interception也升级到3.0。这个版本除了升级底层类库(.NET Standard 2.1)之外,我还对它进行大范围的重构甚至重新设计。这次重构大部分是在做减法,其目的在于使设计和使用更加简单和灵活,接下来... ...
分类:
其他好文 时间:
2019-10-08 09:42:26
阅读次数:
120