Struts2 源码分析-----拦截器源码解析 --- ParametersInterceptor

ParametersInterceptor拦截器其主要功能是把ActionContext中的请求参数设置到ValueStack中,如果栈顶是当前Action则把请求参数设置到了Action中,如果栈顶是一个model(Action实现了ModelDriven接口)则把参数设置到了model中。 下面是该拦截器的doIntercept方法源码: @Override public String doInter...

Netty源码分析--内存模型(下)(十二)

     这一节我们一起看下分配过程 1 PooledByteBuf<T> allocate(PoolThreadCache cache, int reqCapacity, int maxCapacity) { 2 PooledByteBuf<T> buf = newByteBuf(maxCapacity); // 初始化一块容量为 2^31 - 1的ByteBuf 3 allocate(cache, b...

【JDK】JDK源码分析-AbstractQueuedSynchronizer(3)

概述 前文「JDK源码分析-AbstractQueuedSynchronizer(2)」分析了 AQS 在独占模式下获取资源的流程,本文分析共享模式下的相关操作。 其实二者的操作大部分是类似的,理解了前面对独占模式的分析,再分析共享模式就相对容易了。 共享模式 方法概述 与独占模式类似,共享模式下也有与之类似的相应操作,分别如下: 1. acquireShared(int arg): 以共享模式获取资源,...

RocketMQ中Broker的启动源码分析(二)

接着上一篇博客  【RocketMQ中Broker的启动源码分析(一)】 在完成准备工作后,调用start方法: 1 public static BrokerController start(BrokerController controller) { 2 try { 3 4 controller.start(); 5 6 String tip = "The broker[" + controller.g...

Netty源码分析-- FastThreadLocal分析(十)

      上节讲过了ThreadLocal的源码,这一节我们来看下FastThreadLocal。这个我觉得要比ThreadLocal要简单,因为缺少了对于Entry的清理和整理工作,所以ThreadLocal的效率更高。       跟ThreadLocal一样,我们也先给一个结构图:              大家看这个图跟ThreadLocal有哪些区别,首先是用一个Object数组来替代了Ent...

RocketMQ中Broker的启动源码分析(一)

在RocketMQ中,使用BrokerStartup作为启动类,相较于NameServer的启动,Broker作为RocketMQ的核心可复杂得多【RocketMQ中NameServer的启动源码分析】主函数作为其启动的入口: 1 public static void main(String[] args) {2 start(createBrokerController(args));3 } 首先...

RocketMQ中NameServer的启动源码分析

在RocketMQ中,使用NamesrvStartup作为启动类 主函数作为其启动的入口: 1 public static void main(String[] args) {2 main0(args);3 } main0方法: 1 public static NamesrvController main0(String[] args) { 2 try { 3 NamesrvController co...

BAT面试必问HashMap源码分析

oadFactor,当Size>=threshold的时候,那么就要考虑对数组的扩增了,也就是说,这个的意思就是 衡量数组是否需要扩增的一个标准。 Node节点类源码: 树节点类源码: HashMap源码分析 构造方法 putMapEntries方法: put方法 HashMap只提供了put用于添加元素,putVal方法只是给put方法调用的一个方法,并没有提供给用户使用。 对putVal方法添加元素的...

LinkedList源码分析(jdk1.8)

历方式在大数据量情况下,效率很差。在日常使用中应该尽量避免这种用法。总结最后总结一下面试常问的ArrayList和LinkedList的区别,关于ArrayList请参考我上一篇ArrayList源码分析。 ArrayList是基于动态数组实现的,LinkedList是基于双向链表实现的;对于随机访问来说,ArrayList(数组下标访问)要优于LinkedList(遍历链表访问);不考虑直接在尾...

RocketMQ中Broker的消息存储源码分析

Broker和前面分析过的NameServer类似,需要在Pipeline责任链上通过NettyServerHandler来处理消息 【RocketMQ中NameServer的启动源码分析】 实际上就通过前面提到的SendMessageProcessor的processRequest方法处理 【RocketMQ中Broker的启动源码分析(一)】 SendMessageProcessor的processR...
关于我们 联系我们 友情链接 LMLPHP后院 
本站由 LMLPHP 强力驱动 ©2014-2019 LMLPHP 耗时0.420526(s)
2019-11-15 21:48:08 1573825688