源码阅读
文章平均质量分 76
滑德友
认认真真做人,认认真真做事
展开
-
tomcat9源码阅读3启动过程
tomcat9源码阅读3启动过程0 官方文档1 启动过程主要的任务2 启动过程的主要加载过程。3 Bootstrap 静态代码3 Bootstrap#main()主要过程0 官方文档链接1: https://tomcat.apache.org/tomcat-9.0-doc/architecture/startup.html.链接2: https://tomcat.apache.org/tomcat-9.0-doc/architecture/startup/serverStartup.txt.链接2:原创 2021-02-05 18:17:30 · 658 阅读 · 1 评论 -
spring5源码阅读4容器启动AOPjava代码形式补充
spring5源码阅读4容器启动AOPjava代码形式补充1 aop基础资料2 代码3 装载aop:aspectj-autoproxy3.1 找到该元素的解析器3.2 通过解析器注入AOP的BeanDefinition3.5 创建aop的BeanPostProcessor3.6 创建aop的BeanPostProcessor1 aop基础资料官方资料: https://docs.spring.io/spring-framework/docs/current/reference/html/core.htm原创 2022-02-15 17:10:11 · 445 阅读 · 0 评论 -
spring5源码阅读3小结
spring5源码阅读3小结1 答案3 设计模式1 答案spring的bean的创建与注入?读取配置文件,或者扫描配置文件,并解析生成beanDefinition,而后根据beanDefinition生成bean的实例。spring的AOP是如何创建,并调用的?对于ssm项目,会由,mapper,创建aop的factoryBeanPostProcessor(在beanDefinition创建创建之后)。或者也可以通过默认的方式在registerBeanPostProcessors时注入。原创 2021-05-09 16:28:24 · 92 阅读 · 0 评论 -
spring5源码阅读2spring容器启动
spring5源码阅读2spring容器启动1 webApp启动加载2 ContextLoaderListener监听webApp启动3 ContextLoader监听加载spring容器4 AbstractApplicationContext刷新容器4.1 obtainFreshBeanFactory4.1.1 创建beanFactory4.1.2 装载bean定义4.1.2.1 装载默认的bean定义4.1.2.1 装载自定义的bean定义4.1.2.1.1 PropertyPlaceholderBea原创 2021-05-09 16:13:50 · 316 阅读 · 0 评论 -
spring5源码阅读0目标与准备工作
spring5源码阅读0目标与准备工作1 目标2 准备2 基础1 目标spring的bean的创建与注入?spring的AOP是如何创建,并调用的?spring容器的启动过程主要干啥了?具体过程是什么样的?springMVC的容器是什么?springMVC容器启动过程主要干啥了?具体过程是什么样的?springMVC中的controller是如何匹配上HTTPRequest的?又是如何返回给客户端的?2 准备xml版 webAPPhttps://githu原创 2021-04-27 18:59:01 · 84 阅读 · 0 评论 -
击碎java并发8JDK8挡板与ConcurrentHashMap
击碎java并发7JDK9挡板与1 CountDownLatch2 CyclicBarrier3 ConcurrentHashMap3.1 HashTable1 CountDownLatch一种一次性挡板。线程到达挡板处后,会被阻塞,直到所有的相关线程都到达挡板处后,所有线程会被同时唤醒,接着往下执行。源码非常简单。2 CyclicBarrier一种可以循环的CountDownLatch在代码中。可以设置循环额次数,并允许一轮循环结束后,执行完指定run方法,再去唤醒所有线程。源码比较简单。3原创 2021-04-11 11:36:35 · 324 阅读 · 0 评论 -
击碎java并发7JDK8巨人Executor及其王国
击碎java并发7JDK8巨人Executor及其王国1 Executor简介1.1 干嘛用的?1.2 有哪些好处?1.3 工作原理2 Executor组成2.1 Runnable和Callable2.2 Future2.3 BlockingQueue2.4 ThreadPool3 BlockingQueue3.1 BlockingQueue3.2 BlockingQueue3.2.1 重要字段items3.2.2 重要字段takeIndex和putIndex3.2.3 重要字段count3.2.4 重要字原创 2021-04-10 18:41:29 · 1889 阅读 · 1 评论 -
击碎java并发6JDK8巨人Executor的基础使用
击碎java并发6JDK8的线程池的基础使用一级目录二级目录三级目录一级目录二级目录三级目录原创 2021-04-05 14:23:07 · 367 阅读 · 2 评论 -
击碎java并发5JDK8的各种原子类
击碎java并发5JDK8的各种原子类底层的通过调用sun.misc.Unsafe来进行实现。而sun.misc.Unsafe却没有被完全开源。底层是用c和c++写的。开源的部分:http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/share/vm/prims/unsafe.cpp各种原子类,提供了各种类型的原子操作。加,减,自增,自减,CAS写,CAS写读等等比较常用的java.util.concurrent.at原创 2021-04-02 14:40:52 · 66 阅读 · 0 评论 -
击碎java并发3JDK8的各种锁
击碎java并发3JDK8的各种锁各种锁的概念与实现与实现原理悲观锁VS乐观锁公平锁VS非公平锁重入锁VS不可重入锁共享锁VS排它锁/独占锁/互斥锁自旋锁与自适应自旋锁无锁与偏向锁与轻量级锁与重量级锁分拆锁VS分离锁死锁VS活锁阻塞锁VS非阻塞锁JDK8中的各种显示锁的源码LockConditionAbstractOwnableSynchronizerAbstractQueuedSynchronizerAbstractQueuedLongSynchronizer各种锁的概念与实现与实现原理悲观锁VS乐观原创 2021-04-01 20:01:55 · 1311 阅读 · 0 评论 -
击碎java并发2常用设计模式
击碎java并发2常用设计模式备忘录模式享元模式生产者消费者模式java监视器模式备忘录模式被收录在GOF一书中,英文名称为:Memento Pattern。把以前计算过结果存放在内存中,根据参数直接从内存中取,提高系统的吞吐量。典型应用:缓存享元模式被收录在GOF一书中,英文名称为:Flyweight Pattern。复用对象,减少对象的创建与回收,提高系统的吞吐量。典型应用:各种线程池。生产者消费者模式未被收录在GOF一书中,英文名称为:Producer-consumer原创 2021-03-08 10:48:49 · 97 阅读 · 0 评论 -
击碎java并发1锁的基础使用
击碎java并发0基础使用内部锁与线程的使用内部锁与线程的使用原创 2021-03-06 20:19:08 · 83 阅读 · 0 评论 -
击碎java并发0基础知识
击碎java并发0基础官方文档官方文档Java Concurrency In Practice原创 2021-03-05 17:19:52 · 188 阅读 · 1 评论 -
tomcat9源码阅读4目标与总结
tomcat9源码阅读4目标与总结并发设计设计模式代码质量如何接收请求和响应请求并发设计1.线程设计情况一个监听端口的线程用于监听端口,生成socket,把socket扔到队列中,该socket队列是阻塞的。一个消费者线程从socket队列中取出socket,包装后,扔到工作线程池中。工作线程池默认的数量是10个。2.默认连接是1000设计模式1.空对象模式EmptyRoleSemanticNoBodyResponseNoBodyOutputStream责任链模式WebFil原创 2021-02-08 17:53:48 · 76 阅读 · 1 评论 -
tomcat9源码阅读1tomcat架构
tomcat9源码详解1tomcat架构0 官方文档1 图示2 说明3 关键词解释0 官方文档整体: hhttps://tomcat.apache.org/tomcat-9.0-doc/architecture/overview.html.server: https://tomcat.apache.org/tomcat-9.0-doc/config/server.html.service: https://tomcat.apache.org/tomcat-9.0-doc/config/service原创 2021-01-29 17:32:54 · 234 阅读 · 0 评论 -
tomcat9源码阅读0目标与准备工作
tomcat9源码详解0目标与准备工作前言背景如何下载tomcat9源码将tomcat9源码导入项目将tomcat9启动调试运行前言本次的目标1.tomcat中的并发设计2.tomcat中的设计模式3.tomcat中的代码质量4.tomcat如何接收请求和相应请求背景在学习了java并发实践之后,我终于可以看一些高并发相关的框架了。如何下载tomcat9源码tomcat9源码 :tomcat9的代码使用ant进行管理的。我这里使用javaproject进行管理,下载下来后需要进行改动。原创 2020-12-31 10:39:59 · 268 阅读 · 0 评论 -
javac源码详解openJDKSE8版本6generate源码详解
javac源码详解openJDKSE8版本6generate源码详解generate概述入口generate读后感generate概述主要对method进行代码生成,针对不同的语法树,固定生成代码。1.Gen: 代码生成的核心类,包含对环境处理,遍历抽象语法树等等。2.Code:最终生成的代码,提供把java代码翻译成jvm字节码的方法。3.Mneumonics: 字节码指令4.StackMapFrame:堆结构5.State: jvm状态入口从com.sun.tools.javac.ma原创 2020-11-26 14:02:47 · 353 阅读 · 1 评论 -
javac源码详解openJDKSE8版本5DataFlow源码详解
javac源码详解openJDKSE8版本4DataFlow源码详解DataFlow概述DataFlow概述数据流分析:主要有4种数据流分析。分别是:AliveAnalyzer 活性分析;AssignAnalyzer 初始化赋值分析包括定值再次被赋值;FlowAnalyzer异常分析;CaptureAnalyzer赋值过一次,后值没有改变的变量分析;...原创 2020-11-26 11:29:51 · 1192 阅读 · 2 评论 -
javac源码详解openJDKSE8版本4EnterTree源码详解
javac源码详解openJDKSE8版本4EnterTree源码详解EnterTree概述EnterTree源码详解入口阶段1:classEnter(trees, null)EnterTree概述抽象语法树的填充过程是个非常复杂的过程,主要是为节点填充symbol和type,生成env。主要真针对根节点,class节点,class的成员节点。主要可以分为两个大阶段。阶段1:classEnter(trees, null)遍历根节点与class节点,填充package和类自身,和类的类型参数使用的方位。原创 2020-05-21 18:25:28 · 853 阅读 · 0 评论 -
javac源码详解openJDKSE8版本3Parser源码详解
javac源码详解openJDKSE8版本2Lexer源码详解Parser概述Parser源码详解入口入生成抽象语法树的根节点CompilationUnitParser概述Parser: Parser主要不停读token,根据 语法将源文件转成抽象语法树。主要的方法为parseCompilationUnit(计算下一个源文件)和parseExpression(解析一个表达式)和parseSt...原创 2020-04-06 10:49:53 · 808 阅读 · 0 评论 -
javac源码详解openJDKSE8版本2Lexer源码详解
javac源码详解openJDKSE8版本2Lexer源码详解lexer概述二级目录三级目录lexer概述二级目录三级目录原创 2020-03-29 20:57:12 · 798 阅读 · 0 评论 -
javac源码详解openJDKSE8版本1编译的主要过程
javac源码详解openJDKSE8版本1编译的主要过程lexerparseenterTreesprocessAnnotationsattributeflowdesugargenerate编译的主要过程lexer读java文件,生成tokenparse读token组装成treeenterTrees读tree,生成symbol,symbolTable等,并为树生成envproc...原创 2020-03-28 21:40:15 · 337 阅读 · 0 评论 -
javac源码详解openJDKSE8版本0目标与准备工作
javac源码详解openJDKSE8版本0前言背景目标读javac源码需要哪些知识如何下载javac源码如何调试运行javac源码前言我在学习了算法导论英文版和编译原理英文版之后。想印证中书中所说知识,是否被使用到,也相当于是巩固下学过的知识。另外顺带看下javac编译的过程。背景我学习了算法导论英文版第二版和编译原理英文版第二版。算法导论英文版第三版 :目前算法导论图论之前的章节全...原创 2020-03-23 22:15:43 · 535 阅读 · 0 评论 -
tomcat9源码阅读2接收http请求
tomcat9源码阅读2接收http请求0 官方文档1 Acceptor1.1 Acceptor主要功能1.2 Acceptor工作机制2 AbstractEndpoint,NioEndpoint2.1 NioEndpoint主要功能2.2 NioEndpoint工作机制3 AbstractProtocol,Http11NioProtocol4 AbstractProcessorLight,Http11Processor5 CoyoteAdapter6 StandardService StandardWra原创 2021-02-04 09:51:05 · 597 阅读 · 0 评论