源码
文章平均质量分 95
DougLeaMrConcurrency
内推阿里巴巴、蚂蚁集团,校招社招都可以,有需要推荐的请私聊我。
展开
-
Java核心源码之ArrayList、LinkedList:ArrayList、LinkedList的区别、扩容机制、底层数据结构、核心API源码分析
1. ArrayList 简介ArrayList 的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加 ArrayList实例的容量。这可以减少递增式再分配的数量。ArrayList继承于 AbstractList ,实现了 List, RandomAccess, Cloneable, java.io.Serializable 这些接口。public class ArrayList<E>原创 2021-09-20 17:44:56 · 1052 阅读 · 0 评论 -
Java异步编程源码及原理解析:Future、FutureTask、@Async、ForkJoin框架、CompletableFuture、Redis队列、Reactive响应式编程的优缺点及适用场景
Java异步编程源码及原理解析目录1.Fork-Join2.FutureTask3.Async注解介绍4.CompletableFuture5.中间件+线程池会当凌绝顶,一览众山小。1.Fork-Join框架介绍从一道面试题讲起:如何使用多线程实现归并排序?public class Solution { private static final ForkJoinPool pool = new ForkJoinPool(4); // N 核心处理器 // 多线程排序原创 2021-09-03 19:10:34 · 2181 阅读 · 0 评论 -
Java源码HashMap、ConcurrentHashMap:JDK1.8HashMap静态常量以及设置的目的,初始容量、最大容量、扩容缩容树化条件
作为工作中最重要、最常用的容器之一,当然还是要自己动手写一篇 HashMap 的源码解析来加深对其的印象咯,而且它的设计与实现 也有很多值得学习的地方。以下包含HashMap核心静态常量说明以及变量的注释说明。源码赏析JDK1.8 的 HashMap 底层使用的是 动态数组,数组中元素存放的是 链表或红黑树。核心源码如下。public class HashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>原创 2021-08-24 11:13:48 · 820 阅读 · 1 评论 -
SpringCloudAlibaba源码(Nacos、Sentinel):nacos-discovery,Sentinel底层LongAdder的计数实现、时间窗口的实现,限流算法的实现
Nacos 服务注册nacos-spring-boot-project 中有关服务注册的几个项目nacos-discovery-spring-boot-actuatornacos-discovery-spring-boot-autoconfigurenacos-discovery-spring-boot-starterorg.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.alibaba.boot.na原创 2021-02-21 19:19:27 · 409 阅读 · 0 评论 -
SpringBoot源码:Run,application-load,ConditionalOnBean,ConfigurationProperties,LogSystem,自动装配源码
SpringBoot 启动方法Author: HuiFer源码阅读仓库: SourceHot-spring-boot入口通常一个简单的 SpringBoot 基础项目我们会有如下代码@SpringBootApplication@RestController@RequestMapping("/")public class Application { public static void main(String[] args) { SpringApplication.run(Ap原创 2021-02-21 14:14:51 · 321 阅读 · 0 评论 -
MyBatis源码(核心处理层):MyBatis初始化,StatementHandler,Executor,SqlSession,Alias,Cursor,DataSource,MapperMetho
1、MyBatis初始化和 Spring 框架 的 IoC 容器初始化 一样,Mybatis 也会通过定位、解析相应的配置文件完成自己的初始化。Mybatis 的配置文件主要有 mybatis-config.xml 核心配置文件 及一系列映射配置文件,另外,Mybatis 也会根据注解进行配置。1 BaseBuilderMybatis 初始化 的主要内容是加载并解析 mybatis-config.xml 配置文件、映射配置文件以及相关的注解信息。Mybatis 的初始化入口是 SqlSessionFa原创 2021-02-21 13:05:28 · 356 阅读 · 0 评论 -
MyBatis源码(基础支持层):反射工具箱和TypeHandler系列,反射工具箱和TypeHandler系列,binding模块,缓存模块,Mybatis-Cache,log,Reflector
1、反射工具箱和TypeHandler系列在 Mybatis 的基础支持层主要看一下支撑 ORM 实现 的底层代码。1 反射工具包1.1ReflectorReflector 类 主要实现了对 JavaBean 的元数据属性的封装,比如:可读属性列表,可写属性列表;及反射操作的封装,如:属性对应的 setter 方法,getter 方法 的反射调用。源码实现如下:public class Reflector { /** JavaBean 的 Class类型,在调用 Reflector 的构造方原创 2021-02-21 12:27:47 · 274 阅读 · 0 评论 -
Spring源码(SpringTransaction):Spring与事务处理,Spring事务处理的设计与实现,Spring事务管理器的设计与实现,Spring声明式事务处理
Spring与事务处理JavaEE 应用中的事务处理是一个重要并且涉及范围很广的领域。事务管理的实现往往涉及并发和数据一致性方面的问题。作为应用平台的 Spring,具有在多种环境中配置和使用事务处理的能力,也就是说通过使用 Spring 的事务组件,可以把事务处理的工作统一起来,并为事务处理提供通用的支持。在涉及单个数据库局部事务的事务处理中,事务的最终实现和数据库的支持是紧密相关的。对局部数据库事务来说,一个事务处理的操作单元往往对应着一系列的数据库操作。数据库产品对这些数据库的 SQL 操作 已经原创 2021-02-21 12:10:47 · 229 阅读 · 1 评论 -
Spring源码(SpringMVC):Spring HandlerMapping,MappingRegistry
Spring HandlerMappingAuthor: HuiFer源码阅读仓库: SourceHot-spring源码路径: org.springframework.jms.annotation.EnableJmsorg.springframework.web.servlet.HandlerMappingHandlerMapping 处理映射关系, 通过请求转换成对象HandlerExecutionChainpublic interface HandlerMappin原创 2021-02-21 12:00:40 · 389 阅读 · 2 评论 -
Spring源码(AOP):AOP源码实现及分析,JDK动态代理的实现原理解析,Spring-Aop如何生效
作者GitHub:https://github.com/AmyliaY/spring-aop-readingAOP源码实现及分析1 主要的接口1.1 Advice 通知本接口定义了切面的增强方式,如:前置增强 BeforeAdvice,后置增强 AfterAdvice,异常增强 ThrowsAdvice 等。下面看两个主要的子接口的源码。public interface MethodBeforeAdvice extends BeforeAdvice { /** * 目标方法 m原创 2021-02-20 23:22:21 · 291 阅读 · 0 评论 -
Spring源码(Ioc):BeanDefinition的资源定位过程,将bean解析封装成BeanDefinition,将BeanDefinition注册进IoC容器,依赖注入(DI).BeanPo
1、BeanDefinition的资源定位过程正文当我们传入一个 Spring 配置文件去实例化 FileSystemXmlApplicationContext 时,可以看一下它的构造方法都做了什么。/** * 下面这 4 个构造方法都调用了第 5 个构造方法 * @param configLocation * @throws BeansException */// configLocation 包含了 BeanDefinition 所在的文件路径public FileSystemXml原创 2021-02-20 23:05:14 · 322 阅读 · 0 评论