- 博客(66)
- 收藏
- 关注
原创 Redis进阶 - 数据结构底层机制
想知道为什么redis单线程能这么快吗?本篇文章会给你答案,下一篇文章会带你深入探索redis底层数据结构。
2025-11-10 21:41:40
641
原创 Spring进阶 - Spring事务理论+实战,一文吃透事务
一文吃透事务,spring事务,spring事务传播行为,spring事务原理,spring事务实战带练。
2025-10-28 21:06:08
427
原创 Spring进阶 - SpringMVC实现原理(二)DispatcherServlet处理请求的过程
前文我们有了IOC的源码基础以及SpringMVC的基础,我们便可以进一步深入理解SpringMVC主要实现原理,包含DispatcherServlet的初始化过程和DispatcherServlet处理请求的过程的源码解析。本文是第二篇:DispatcherServlet处理请求的过程的源码解析。这篇文章能帮你理清楚 JVM、Tomcat、Spring 宏观上的关系。
2025-10-06 19:14:56
1063
原创 JVM 进阶学习,万字讲解
JVM 学习能理解我们写的 Java 代码底层是怎么跑的,怎么和操作系统,cpu 打交道,剖析程序执行的本质流程。本文篇幅较长。通读一遍,多了解熟悉● 程序计数器● 虚拟机栈:栈和操作数栈、动态链接、方法返回地址● 堆内存● 方法区:常量池,方法区gc
2025-10-06 00:25:08
1340
原创 Spring进阶 - SpringMVC实现原理(一)DispatcherServlet的初始化过程
DispatcherServlet 是一个纯粹的后端技术。注意,传统的服务端渲染和前后端分离渲染有点区别。在传统服务端渲染 (SSR) 中,DispatcherServlet 承担了为前端“生产”最终 HTML 页面的全部责任,此时的 DispatcherServlet 是有渲染职责的。在前后端分离的项目中,DispatcherServlet 不需要做渲染任务(不用返回 View), 只负责返回 JOSN 数据。
2025-10-05 18:55:12
1031
原创 Spring进阶 - Spring AOP实现原理(二)AOP代理的创建
上一篇文章熟悉后,创建代理对象的源码5分钟能看完。上一篇文章我们通过阅读源码学会切面实现原理,将切面类的所有切面方法根据使用的注解生成对应Advice,并将Advice连同切入点匹配器和切面类等信息一并封装到Advisor。本文在此基础上继续介绍,代理(cglib代理和JDK代理)的创建过程。
2025-10-03 21:16:54
906
原创 Spring进阶 - Spring AOP实现原理(一)AOP切面实现原理
本文通过一个aop简单例子,然后阅读源码讲解 AOP 切面实现原理,并且描述了整体流程以及每一步的含义,让读者清晰源码的作用。
2025-10-03 19:21:50
802
原创 Spring进阶- Spring IOC实现原理(三)Bean实例化(生命周期,循环依赖等)
本文是 IOC 进阶第三篇,而是最后一篇。上文介绍 IOC 容器初始化流程,我们成功的把一个 XML 定义的 Bean 信息放到容器 Map 中了,但也仅仅是如此,并没有在 JVM 中创建一个 Bean 实例,本文我们来探索 Bean 实例化、Bean 生命周期和循环依赖。Spring 项目启动,容器初始化,容器内有了 BeanDefinition 对象, 描述 Bean 实例,把这个 BeanDefinition 在运行时变成一个 Java 实例对象,聪明的你很快想到这需要 **反射 **技术。
2025-10-03 00:25:34
786
1
原创 Spring进阶- Spring IOC实现原理(二)IOC初始化流程
AbstractBeanDefinitionReader的loadBeanDefinitions方法源码如下:这个类并不是加载 xml 的过程,它是创建了一个 Resource 对象,分派 Resource 对象给子类来加载 Bean.@Override// 模式匹配类型的解析器,这种方式是加载多个满足匹配条件的资源try {// 获取到要加载的资源// 委派调用其子类XmlBeanDefinitionReader的方法,实现加载功能= null) {else {
2025-10-03 00:24:23
1174
原创 Spring 进阶 - Spring IOC 实现原理(一)IOC体系结构设计
本文是 IOC 进阶第一篇,叙述 IOC 容器有哪些核心组件,各自的职责是什么。
2025-10-02 22:29:11
782
原创 Spring 基础核心 - SpringMVC 入门与请求流程
MVC英文是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计规范。本质上也是一种解耦。软件设计规范:为了解决某一类反复出现的问题,总结出一套被广泛认可的、行之有效的结构和模式。具有结构性的特点:通常定义了组件的角色、职责以及它们之间的交互方式,很像在某类问题、某个场景下的方法论。相似的概念是设计思想,这两个概念经常互用,不过设计思想更抽象一点。设计思想:软件设计的核心原则和理念,回答的是“为什么要这么设计?”的问题。
2025-10-02 18:40:28
975
原创 Spring 核心 - AOP 面向切面编程入门, 通俗易懂
撰写本文目的只有一个,让你畅快阅读 AOP 知识。不急解释 AOP 的概念, 我们先来看 AOP 解决了什么问题。
2025-10-02 06:45:04
1241
原创 Spring Boot 内置日志框架 Logback - 以及 lombok 介绍
SLF4J是一个日志门面(Facade),它提供统一的日志 API这也是 Spring boot 的starter 默认集成的依赖,如图,我们就不用手动集成这个依赖了。SLF4J 仅仅是一个门面类,没有具体实现,统一了API的调用。日志的具体能力由 Logback 框架提供,接下来学习。Logback是一个Java 日志框架,由 Log4j 的作者 Ceki Gülcü 开发,是 Log4j 的“继任者”, 在 Spring Boot 里,Logback 是默认日志实现,通过自动引入。
2025-09-30 22:29:43
1040
原创 Spring核心 - 控制反转 IOC , 用来大量例子来解释
本文摘要: Spring框架的核心思想是控制反转(IoC),将对象的创建与管理交给容器,实现解耦。IoC容器负责Bean的生命周期,通过依赖注入(DI)实现,二者是同一概念的不同角度。Spring支持XML、注解和Java配置三种方式注册Bean,主流采用注解+Java配置。传统应用程序主动创建依赖对象(正转),而IoC容器被动注入依赖(反转),体现"好莱坞法则"。IoC简化了资源管理(如数据库连接、配置文件),提升组件复用性,使系统更灵活。依赖注入方式包括构造器、@Autowired等
2025-09-30 19:03:11
878
原创 spring核心 - 一个 helloworld 的例子引入 Spring 概念,入门级介绍
Spring Boot简化了Spring应用的开发,但开发者仍需深入学习Spring框架,以理解其核心设计理念和底层机制。Spring起源于解决J2EE开发的复杂性,提供非侵入式、控制反转、依赖注入等特性,提升开发效率和性能。Spring框架包含核心容器、数据访问/集成、Web等模块,支持事务管理、ORM集成、Web开发等企业级功能。掌握Spring框架有助于维护老旧项目、分析底层问题,并构建完整的知识体系。从IOC、AOP到模块化设计,Spring提供了一站式解决方案,整合各类开源框架,是Java企业开发
2025-09-30 19:01:52
638
原创 Spring Boot 3.x 开发 Starter 快速上手体验,通过实践理解自动装配原理
**自动装配** = Spring Boot 根据当前 classpath 里的依赖、配置文件和条件判断,自动帮你注册合适的 Bean 到容器中
2025-09-29 23:11:23
1089
1
原创 使用 AI 开发了一个 SpringBoot + vue 的程序员练兵场项目,并且0元部署上线
使用 Claude Code 开发了一个 SpringBoot + vue 的程序员练兵场项目,当一个玩具玩玩,提示词在 github 源码 .claude 路径下。
2025-09-29 23:09:18
638
原创 JVM 学习 - 通俗易懂
JVM是Java程序运行的核心进程,负责执行编译后的.class字节码文件。它包含类加载、运行时数据区和执行引擎等核心组件。类加载过程分为加载、验证、准备、解析和初始化五个步骤,将字节码加载到方法区。运行时数据区包括线程私有的程序计数器、虚拟机栈和线程共享的堆、方法区等。其中程序计数器记录线程执行位置,确保多线程正确切换。JVM通过将Java源代码编译成平台无关的字节码,配合不同系统的JVM实现,实现"一次编写,到处运行"的特性。
2025-09-29 23:04:52
1348
原创 学习心得分享
我认为知识是一定要系统化的学习,结构化梳理,这样在运用或思考的时候,能够回忆起自己在这一块梳理的知识结构,如果有记录那么能快速回忆并理解,如果没有记录,那么说明对自己来说超纲了,把知识进行分类,写入自己的知识库,那就对知识点有了一个快速的定位和理解。能够梳理清晰自己所学的知识,并定位知识点。这就是我认为系统化知识的意义。我在学习过程中发现,我自己的思维方式和理解方式,想要学会和理解一个知识点,使用它是最快的方式,将这个知识点实战一次,就基本知道了这东西的作用。1)起步入门:粗读是什么?有什么用?
2025-09-05 23:42:07
1017
原创 线程池与异步编程——语法归纳
CompletableFuture 是Futrue 的增强版,不阻塞线程,一般搭配线程池使用,执行异步任务。,容易导致 OOM,所以阿里规范建议直接用。CompletableFuture 工作流程。Spring 对线程池做了封装,常用。这时必须要做一个选择 —— 这就是。,线程池就没有能力再接新任务了。👉 问题:这些方法的队列可能是。Future 工作流程。异步执行任务,无线程。
2025-08-16 18:23:10
189
原创 vue: Module “vue“ has no exported member xxx
解决:卸载为 Vue 2 提供的 TypeScript 类型声明包,Vue 3 本身的包已经带了类型定义,vue 的报错,如下图,跟 vue 模块有关的包全爆红。
2025-08-10 11:23:20
306
原创 为什么你觉得 java 中的 Lambda 抽象?手把手带你自定义一个 lambda 看不看?
lambda 表达式调用方关注行为,lambda 表达式的本质是传递行为,函数式接口可以被传递,调用方可实现函数式接口,那不就是把方法体传递给工具类,工具类已经定义好整体的实现包含了调用函数式接口,工具类整体逻辑就完整了。
2025-07-24 20:34:59
632
原创 《Head First 设计模式》第一章 - 策略模式笔记
本文介绍了设计模式中的策略模式,重点讲解了其核心思想和实现方式。策略模式通过将算法或行为封装在独立的类中,使得它们可以互相替换,从而实现了代码的解耦和职责分离。文章通过一个鸭子的实例,展示了如何将鸭子的飞行和叫声行为拆分为独立的策略类,并通过组合的方式将这些行为注入到Duck类中,实现了高内聚低耦合的设计。此外,策略模式还支持动态替换策略实例,提供了运行时灵活性,符合开闭原则。文章最后通过代码示例展示了如何实现和测试策略模式,并演示了如何动态改变鸭子的行为。
2025-05-12 17:26:36
612
原创 jdk1.8 切换(更新)到JDK 17/21
在 IDEA 终端输入 java -version,如果还是 JDK 1.8 ,指定下载的文件路径,下载好了之后需要配置环境变量,如图,两个环境变量都修改。重新打开新的 cmd ,输入 java -version。打开path, 删除旧的环境变量。IDEA 就能下载 JDK。
2025-05-06 12:14:17
754
原创 《Effective java》 第三版 核心笔记
什么是接口定义类型?接口的主要目的是定义一个类型。当一个类实现了一个接口,它就是在向使用者声明它属于这个接口定义的类型,并承诺提供该接口所规定的行为(方法)。常量接口违反这个规则。接口就是用来定义规范的,如果声明了常量,那么子类会继承常量,出现污染命名空间等问题。什么是标记接口?标记接口是一种不包含任何方法或常量声明的接口。它的唯一作用是“标记”或指示实现它的类具有某种特定的属性或能力。// Serializable 接口就是一个标记接口// 没有任何方法声明// 实现标记接口的类。
2025-05-05 11:41:32
876
原创 java的代理、注解、反射快速回顾
反射获取注解信息,做一些校验逻辑等就很方便举例// 获取类上的注解Class<?//获取字段上的注解return age;return id;
2025-05-04 00:34:57
1108
原创 多线程知识点核心笔记
两个线程,一个叫 tortoise, 一个叫 rabbit, tortoise 先过了重点,然后 break for 循环,此时 break 掉的也只是 tortoise线程的循环,rabbit 畅通无阻,继续运行。:是 Lock 常用的实现类,可以通过构造方法实现公平锁,公平锁会尽量保证线程获取锁的顺序是按照它们请求锁的顺序来,等待时间越长越优先。当一个线程尝试获取一个锁,但锁当前被其他线程持有,该线程就会暂停执行,进入等待状态,直到锁被释放。线程是执行任务的“工人”,任务是“要完成的具体工作”。
2025-05-01 01:28:42
1044
原创 《代码整洁之道》全书归纳
重构通常始于发现代码中的问题迹象,即“代码异味”。这些异味是代码中可能存在更深层次设计问题的表面特征。学会识别这些异味是重构的第一步。
2025-04-27 23:50:47
893
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅