文大篇幅引用自HongJie大佬的一行一行源码分析清楚AbstractQueuedSynchronizer,这只是一篇简单的个人整理思路和总结(倒垃圾),如果觉得有些难懂的话,不要犹豫也不要疑惑,很明显是我这篇文章的问题,不是你的问题,这时你最好直接转去看HongJie大佬的原文,那个会好懂很多。还 ...
分类:
其他好文 时间:
2020-02-11 00:28:44
阅读次数:
73
resize函数 因为HashMap的构造函数 并不会给内部的表开辟空间 而是在调用put函数时 如果表为空 调用resize方法 换句话说 resize函数不得不 考虑 任何不同形式的构造函数 及带一参 带两参 不带参的构造函数 调用resize方法 所以整个 大概思路 1. 旧表保存下来 2. ...
分类:
其他好文 时间:
2020-02-09 20:26:41
阅读次数:
79
在 Zuul中, 整个请求的过程是这样的,首先将请求给zuulservlet处理,zuulservlet中有一个zuulRunner对象,该对象中初始化了RequestContext:作为存储整个请求的一些数据,并被所有的zuulfilter共享。zuulRunner中还有 FilterProces ...
分类:
其他好文 时间:
2020-02-09 14:59:01
阅读次数:
95
Spring AOP的面向切面编程,是面向对象编程的一种补充,用于处理系统中分布的各个模块的横切关注点,比如说事务管理、日志、缓存等。它是使用动态代理实现的,在内存中临时为方法生成一个AOP对象,这个对象包含目标对象的所有方法,在特定的切点做了增强处理,并回调原来的方法。 Spring AOP的动态 ...
分类:
编程语言 时间:
2020-02-09 09:38:37
阅读次数:
61
前置知识点:浏览器原理,浏览器内核5种线程及协作,JS引擎单线程设计推荐阅读:从浏览器多进程到JS单线程,JS运行机制最全面的一次梳理【FE】浏览器渲染引擎「内核」js异步编程,Promise实现推荐阅读:Javascript异步编程的4种方法前端面试必考题Promise的源码解析堆、栈、队列、执行... ...
分类:
编程语言 时间:
2020-02-08 13:57:19
阅读次数:
89
从池化技术到底层实现,一篇文章带你贯通线程池技术。 1、池化技术简介 在系统开发过程中,我们经常会用到池化技术来减少系统消耗,提升系统性能。 在编程领域,比较典型的池化技术有: 线程池、连接池、内存池、对象池等。 对象池通过复用对象来减少创建对象、垃圾回收的开销;连接池(数据库连接池、Redis连接 ...
分类:
编程语言 时间:
2020-02-07 16:55:44
阅读次数:
76
mybatis是一个非常优秀的开源orm框架,在大型的互联网公司,基本上都会用到,而像程序员的圣地—阿里虽然用的是自己开发的一套框架,但其核心思想也无外乎这些,因此,去一些大型互联网公司面试的时候,总是会问到对于这些开源框架的理解,有没有阅读开源框架的源码,虽说是面试造火箭,工作拧螺丝,但是让你造火 ...
分类:
其他好文 时间:
2020-02-06 23:14:58
阅读次数:
74
Tomcat启动入口就在脚本startup.sh中,具体脚本可以看tomcat的源码,这个启动脚本主要用来判断环境,找到catalina.sh脚本路径,将启动参数传递给catalina.sh执行。catalina.sh start 最终会执行org.apache.catalina.startup.B ...
分类:
其他好文 时间:
2020-02-06 12:26:47
阅读次数:
67
java中的所说的线程池,一般都是围绕着 ThreadPoolExecutor 来展开的。其他的实现基本都是基于它,或者模仿它的。所以只要理解 ThreadPoolExecutor, 就相当于完全理解了线程池的精髓。 其实要理解一个东西,一般地,我们最好是要抱着自己的疑问或者理解去的。否则,往往收获 ...
分类:
编程语言 时间:
2020-02-06 01:45:37
阅读次数:
77
前面几篇文章,我们完全领略了redis的string,hash,list,set数据类型的实现方法,相信对redis已经不再神秘。 本篇我们将介绍redis的最后一种数据类型: zset 的相关实现。 本篇过后,我们对redis的各种基础功能,应该不会再有疑惑。有可能的话,我们后续将会对redis的 ...
分类:
其他好文 时间:
2020-02-02 23:44:13
阅读次数:
109