自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 使用Java实现一个简单的B树

使用Java实现一个简单的B树

2024-09-15 00:00:26 1077

原创 Java源码学习之高并发编程基础——AQS源码剖析之线程间通信之条件等待队列

前言:在Java中,使用synchronized关键字构建的锁,线程间通信可以使用某对象实例的wait/notify机制完成。AQS同样也提供了一套线程间通信的解决方案——条件等待队列。在AQS源码分析的两篇文章AQS源码分析(上)AQS源码分析(下)中,我们知道了,无论是独占锁模式还是共享锁模式,AQS提供的能力是将获取不到锁的线程将它们封装成链表节点的形式组织起来进行同步等待。

2024-09-03 21:31:15 1352

原创 Java源码学习之高并发编程基础——AQS源码剖析之阻塞队列(下)

AQS的核心源码解读——解读共享锁的特点,以及相比于独占锁的差异,探究共享锁能应用于什么背景。

2024-09-01 08:48:21 1180

原创 Java源码学习之高并发编程基础——AQS源码剖析之阻塞队列(上)

AQS的核心源码解读——以独占锁的例子进行AQS最重要的两个功能:等锁节点的入队、等锁节点获取到锁以后的出队。

2024-08-25 12:52:09 1181

原创 实现一个具备增删改查功能的双向链表

模仿LinkedList,实现一个具备基本的增、删、改、查功能的双向链表,旨在加深双向链表特点与应用的学习。

2024-08-25 12:49:58 1078

原创 Java源码学习之高并发编程基础——线程池源码剖析

本文以源码解读、结合面向对象特性分析的方式讲解Java线程池的运行机制和核心原理,更能让人印象深刻。

2024-08-17 15:42:38 1170

原创 Java源码学习之高并发编程基础——多线程的创建(下)

本文以源码解读、结合面向对象特性分析的方式讲解Java实现多线程编程的方法,更能让人记忆深刻。

2024-08-11 19:14:21 890

原创 Java源码学习之高并发编程基础——多线程的创建(上)

本文以源码解读、结合面向对象特性分析的方式讲解Java实现多线程编程的方式,更能让人记忆深刻。

2024-08-10 19:57:51 1103

原创 SpringBoot源码学习之Environment环境变量和配置文件读取

Springboot项目读取JVM参数和配置文件的源码解读,是学习SprintBoot框架的第一步。

2024-08-04 17:47:55 2546 1

原创 SpringBoot源码学习之Spring事务编程原理

Spring事务编程源码解读,涵盖了主要流程、衔接点、类对象设计、丰富的案例。

2024-07-30 23:43:53 1521

原创 SpringBoot源码学习之CGLIB动态代理原理

public void test1(){ // 可以被cglib代理对象代理执行System.out.println("TestService正在执行test1方法");private static void test2(){ // 非private的、static方法无法被cglib代理对象代理执行System.out.println("TestService正在执行test2静态方法");public final void test4(){ // final方法无法被cglib代理对象代理执行。

2024-07-20 21:43:15 1055

原创 SpringBoot源码学习之AOP切面编程原理

AOP切面编程主要用于抽取与具体业务逻辑无关的逻辑并组织起来以另一种方式重新与业务逻辑“耦合”在一起。比如,在WEB项目中,往往需要对接口做鉴权、性能统计、日志记录、事务处理等,这些逻辑跟业务逻辑无关、是独立的,但它也是多数业务逻辑都需要的。将这些横跨多种业务逻辑的、与业务无关的逻辑抽取出来,在合适的地点“切入”目标方法的过程就叫做横切,而这些抽取的逻辑就叫横切关注点。

2024-06-16 17:27:55 2447

原创 SpringBoot源码学习之基于注解开发的主要原理

SpringBoot是一个基于注解开发的框架,与Spring相比,我们不需要编写繁琐的XML文件去定义Bean之间的关系才能交给Spring容器处理。往往我们可以用最简单的方式,只需要在Bean对象所在类上标注一个@Component注解,SpringBoot运行期间便能扫描到这个类并最终加载到容器中。例如,我们有一个Bean,在SpringBoot和Spring框架中分别需要以下配置。以SpringBoot的方式配置@Component以Spring的方式配置

2024-06-06 08:09:24 1262

原创 SpringBoot源码学习之SpringBoot自动装配原理

经过上面的分析,其实SpringBoot的自动装配是通过实现的,它帮我们做的第一件事情,便是利用读取引入的各个Jar包中的META-INF/spring.factories文件中的配置类路径名。SpringBoot的自动装配,对于引入第三方组件来说是一大利器,只要遵循了规范,在其META-INF/spring.factories文件中定义好配置类Bean的全限定路径,自动装配便会逐一加载有效的候选类路径出来供给后面SpringBoot派生为BeanDefinition对象并创建为Bean对象。

2024-06-02 00:31:36 1483

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除