摘要:
本文 JDK 对应的版本为 JDK 13 由于传统的 synchronized 关键字提供的内置锁存在的一些缺点,自 JDK 1.5 开始提供了 Lock 接口来提供内置锁不具备的功能。显式锁的出现不是为了替代 synchronized提供的内置锁,而是当内置锁的机制不适用时,作为一种可选的高级功能 阅读全文
摘要:
线程状态 线程一般的状态转换图如下: 在线程生命周期中存在的状态解释如下: New(初始化)状态 此时线程刚刚被实例化,可以通过调用 start() 方法来启动这个实例化的的线程,使其状态转变成为 Ready 状态 Runnable 状态 Ready 状态和 Running 状态统称为 Runnab 阅读全文
摘要:
与计算机基础相关的线程知识在此略过 线程安全性 相关的定义如下: 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在代码中不需要任何额外的同步或者协同,这个类都能够表现出正确的行为,那么称这个类是线程安全的 常见的线程安全对象: 无状态对象 无状态对象一定是线程 阅读全文
摘要:
对应 LeetCode 127 单词接龙 问题定义 给定一个字典序列 wordList,一个初始的单词 beginWord 和一个目标单词 endWord,现在要求每次变换满足以下条件将 beginWord 转换为 endWord: 每次只能转换一个字母 转换后的单词必须出现在 wordList 中 阅读全文
摘要:
本文基于 Spring Boot 2.6.0 基于之前提到的 Reactor 的出现,使得编写响应式程序成为可能。为此,Spring 的开发团队决定添加有关 Reactor 模型的网络层。这样做的话将会对 Spring MVC 作出许多重大的修改,因此 Spring 的研发团队决定开发一个单独的响应 阅读全文
摘要:
官方的介绍如下: Reactor is a fully non-blocking reactive programming foundation for the JVM, with efficient demand management (in the form of managing “backp 阅读全文
摘要:
本文的 MVC 基于传统的 Servlet 应用,所使用的 Spring Web 的环境为 Spring Boot 2.5.2 静态资源的加载 参考 Spring Boot 中给出的文档,原文如下: By default, Spring Boot serves static content from 阅读全文
摘要:
AOP 即面向切面编程,在前文已经有所介绍,具体的实现方式有以下三种: 静态代理:通过为要执行切面操作的类手动定义一个额外的类来完成功能 动态代理:在程序运行时动态地生成代理类来实现切面的具体功能 AspectJ:对 相关的.class 文件进行对应的处理,加入对相关的切点织入一些功能代码来完成 在 阅读全文
摘要:
—— 本文将简单介绍一下有关 Spring AOP 的概念以及基本的使用 Spring AOP 是 Spring 中对于 AOP 的支持与实现。在 Spring 中,AOP 的实现是通过动态代理的方式来实现的,这是由于 Spring IOC 的存在,对于对象实例的控制更加方便,同时也为了降低开发的难 阅读全文
摘要:
在 Java 中,实现动态代理的方式主要有两种方式:JDK 动态代理和 CGLIB 动态代理,这两种代理方式在 Java 实现代理模式时最为常见。 代理模式的一般 UML 图如下: 客户端在调用 Subject 类型的类时,将会将这个请求转发到 Proxy 类中,在 Proxy 类中再调用 Read 阅读全文