目录 本篇要点 什么是阻塞队列 阻塞队列提供的方法 阻塞队列的七种实现 TransferQueue和BlockingQueue的区别 1.ArrayBlockingQueue 2.LinkedBlockingQueue 3.PriorityBlockingQueue 4.DelayQueue 5.SynchronousQueue 6.LinkedTransferQueue 7.LinkedBlockingDeque 阻塞队列的实现机制 put方法 take方法 参考阅读 系列传送门: Java并…
TP图片上传类的理解 在做自己项目上传图片的时候一直都有用到TP的上传图片类,所以要进入源码探索一下. 文件目录:./THinkPHP/Library/Think/Upload.class.php namespace Think; //声明命名空间 class Upload //声明类名 /** * 默认上传配置 * @var array */private $config = array(    'mimes'        => array(), //允许上传的文件MiMe类型    'ma…
一.HashMap (1) 简介:java1.8版本之前HashMap的结构图如下: 数组的每个元素都是一个单链表的头节点,链表是用来解决冲突的,如果不同的key映射到了数组的同一位置处,就将其放入单链表中.但这就存在一个问题:在一个链表中查找一个节点时,将会花费O(n)的查找时间,会有很大的性能损失,所以在JDK1.8后,当同一个hash值的节点数不小于8时,不再采用单链表形式存储,而是采用红黑树,结构图如下: HashMap在底层将key-value当成一个整体进行处理,这个整体就是一个No…
有了点模板元编程的traits基础,看STL源码清晰多了,以前看源码的时候总被各种各样的typedef给折腾得看不下去, 将<list>头文件的类继承结构简化如下 #include <xmemory> #include <stdexcept> #define _STD_BEGIN namespace std { #define _STD_END } _STD_BEGIN // 第一个模板参数 template <class _Val_types> class…
Action 的概述 InlineAction 就是内联动作,所谓的内联动作就是放到controller 里面的 actionXXX 这种 Action.customAction 就是独立动作,就是直接继承 Action 并实现 run 方法的 Action. 与 Controller 的交互 public function createAction($id) { if ($id === '') { $id = $this->defaultAction; } $actionMap = $this…
  原创申明:本文由公众号[猿灯塔]原创,转载请说明出处标注 ​“365篇原创计划”第十篇. 今天呢!灯塔君跟大家讲: 深入分析Object类finalize()方法的实现原理 finalize 如果类中重写了finalize方法,当该类对象被回收时,finalize方法有可能会被触发,下面通过一个例子说明finalize方法对垃圾回收有什么影响. publicclassFinalizeCase{ privatestaticBlock holder =null; publicstaticvoid…
类图关系 属性与方法 class Component extends BaseObject { private $_events = []; private $_eventWildcards = []; private $_behaviors; public function __get($name) public function __set($name, $value) public function __isset($name) public function __unset($name)…
关系类图 从上图可以看出 Application 类继承了 Module,在框架中的是非常重要角色. 加载配置 public function setModules($modules) { foreach ($modules as $id => $module) { $this->_modules[$id] = $module; } } base\Module 通过 setModules 把 Module 配置信息加载进来,赋值给 私有变量 _modules. 解析路由 Module 还有一个…
目录 PriorityBlockingQueue概述 类图结构及重要字段 什么是二叉堆 堆的基本操作 向上调整void up(int u) 向下调整void down(int u) 构造器 扩容方法tryGrow 源码中向上调整和向下调整实现 siftUpComparable siftDownComparable heapify建堆or堆化 put非阻塞式插入 take阻塞式获取 remove移除指定元素 总结 参考阅读 系列传送门: Java并发包源码学习系列:AbstractQueuedSy…
目录 DelayQueue概述 类图及重要字段 Delayed接口 Delayed元素案例 构造器 put take first = null 有什么用 总结 参考阅读 系列传送门: Java并发包源码学习系列:AbstractQueuedSynchronizer Java并发包源码学习系列:CLH同步队列及同步资源获取与释放 Java并发包源码学习系列:AQS共享式与独占式获取与释放资源的区别 Java并发包源码学习系列:ReentrantLock可重入独占锁详解 Java并发包源码学习系列:…