自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (3)
  • 收藏
  • 关注

原创 Redis上篇--知识点总结

**Redis** 是一个开源的、高性能的 **内存键值数据库**,Redis 的键值对中的 **key 就是字符串对象**,而 **value 就是指Redis的数据类型**,可以是String,也可以是List、Hash、Set、 Zset 的数据类型。Redis通常被用作数据库、缓存、消息中间件和实时数据处理引擎。它以速度极快、支持丰富的数据结构而闻名,是现代应用架构中非常流行的组件。

2025-06-09 16:49:17 1036

原创 网络编程--下篇

《网络编程下篇》摘要本文承接上篇网络编程内容,重点分析了NIO与Netty实现原理。首先对比BIO模型,指出其线程阻塞和内存消耗问题。详细讲解操作系统级多路复用技术,从select/poll到epoll的演进,以及Java NIO的Selector实现机制。在Netty部分,深入剖析其异步编程模型,比较JDK Future与Netty Future/Promise的区别,重点解释sync()和await()方法的实现原理与使用场景:sync()会检查异常并重新抛出,而await()仅阻塞等待。本文配套代码

2025-06-05 20:11:06 953

原创 网络编程--上篇

网络编程基础摘要本文总结了计算机网络的核心概念,主要包括:网络模型:介绍了OSI七层模型和TCP/IP四层/五层模型的分层结构,及其设计意义。关键协议:传输层:TCP(可靠连接)与UDP(高效无连接)的特点对比应用层:HTTP(单向请求响应)与WebSocket(全双工实时通信)的异同安全协议:HTTPS的加密机制与传统HTTP的区别其他协议:FTP、DNS、SSH等协议的基本功能TCP连接管理:简要说明了三次握手(SYN-SYN/ACK-ACK)建立可靠连接的机制。网

2025-05-27 19:44:25 603

原创 限流算法 + dfa敏感词过滤算法

本文探讨了社交场景中的限流和敏感词过滤技术。首先,通过社交平台实时评论审核和电商平台评论/私信接口防刷两个场景,介绍了限流和敏感词过滤的必要性。接着,详细分析了两种常见的限流算法:固定窗口限流和滑动窗口限流。固定窗口限流简单易实现,但存在边界突刺问题;滑动窗口限流通过动态滑动时间窗口,解决了边界问题,限流更加精准。最后,文章提供了Java代码示例,展示了如何实现这两种限流算法。通过这些技术,可以有效防止系统被恶意流量冲垮,同时确保内容合规,提升用户体验。

2025-05-18 19:57:40 798

原创 SpringBoot3+AI

SSE(Server-Sent Events)是一种基于HTTP的轻量级协议,允许服务器主动向客户端推送数据,适用于实时通知、日志流等场景。与WebSocket不同,SSE仅支持单向通信(服务器→客户端),且浏览器原生支持,无需额外插件。SSE通过HTTP长连接实现,客户端使用EventSource API接收数据,服务器返回text/event-stream格式的文本流。SSE具有自动重连机制,适合无需双向通信的场景,如GPT问答形式。在Spring Boot中,可以使用SseEmitter实现SSE功能

2025-05-18 19:55:24 995 1

原创 ThreadLocal原理分析--结合Spring事务

ThreadLocal 是 Java 中用于实现线程局部变量的工具,它为每个线程提供独立的变量副本,确保线程间的数据隔离,从而避免多线程环境下的共享变量问题。通过 set()、get() 和 remove() 方法,线程可以操作自己的局部变量,而不会影响其他线程。ThreadLocal 的核心思想是通过 ThreadLocalMap 存储每个线程的变量副本,键为 ThreadLocal 对象,值为变量值。

2025-05-12 17:12:59 811

原创 spring详解-循环依赖的解决

本文都快写完了,发现“丈夫” 的英文是… 在“②有AOP循环依赖” 改过来了,前面用到的位置太多了就没改。我是说怎么idea的hansband英文下面怎么有波浪线。各位能够理解意思就行,英文拼写不要过于在意.

2025-05-06 22:27:27 1269 2

原创 并发编程--下篇

自定义一个读写锁学一下jdk源码,写一个内置的Sync同步器,低位16位记录写锁重入次数,高位16位记录读锁获取次数// 内置同步器// 写锁方法(tryAcquire/tryRelease)-- 独占// 如果存在读锁或写锁(且持有者不是当前线程),获取失败if (state!= 0) {// writeCount是0,但是state不是0,说明有线程获取到了读锁// 检查是否超过最大重入次数(低16位是否溢出)throw new Error("超出最大重入次数");

2025-05-02 22:06:00 740

原创 Java并发探索--上篇

前面分析可以知道ReentrantLock是以AQS为基础框架来实现的,那么,此节我们自定义来实现一个锁。见 “Java并发探索–下篇”

2025-04-28 20:37:03 733

原创 Bean生命周期

在经过三篇文章的分析过后,我们对Spring容器的创建过程有了一个大致的认识:我们都知道是在方法里面进行的,本文就来对Bean的生命周期作一个总结,本文就不探讨具体源码了。通过对该方法的源码查看调试,我们得知invokeBeanFactoryPostProcessors方法会把所有实现BeanFactoryPostProcessor和BeanDefinitionRegistryPostProcessor的类进行实例化和调用。BeanDefinitionRegistryPostProcessor :: pos

2025-04-22 20:16:29 701

原创 Spring-AOP分析

在上一篇文章中,【】【https://www.cnblogs.com/jackjavacpp/p/18829545】,我们了解到了IOC容器的创建过程,在文末也提到了AOP相关,但是没有作细致分析,这篇文章就结合示例,来详细分析一下Spring-AOP。本文章示例代码见该仓库:【】中的“spring”模块。仓库地址:https://gitee.com/quercus-sp204/sourcecode-and-demos。

2025-04-21 16:57:02 1047

原创 Spring分析-IOC

Spring 是一个基于 Java 平台的开源全栈应用程序框架,也是一个控制反转(IoC)容器实现。Spring IoC 容器即 Spring 框架中负责管理“Bean”(由容器实例化、配置并组装的普通 POJO 对象)的核心组件。容器读取配置元数据(XML、注解或 Java 配置类),解析 Bean 定义,然后在启动或按需时实例化 Bean,完成依赖注入,并负责 Bean 的整个生命周期管理。

2025-04-16 20:22:47 1130

原创 SpringBoot启动run方法分析

经过第二大节的整体分析,我们大致可以知道在容器刷新之前,由于是Servlet的Application,故由模板方法运行创建Servlet容器,ServletContextListener接口contextInitialized会先执行。调用构造方法创建bean对象,实例化Aware 接口InitializingBean接口的afterPropertiesSet()自定义的initMethodRunners对于Spring的容器创建、bean的创建、以及事件等内容的详细分析,请见后续文章。

2025-04-05 12:21:05 785 1

原创 Mybatis源码分析

Mybatis源码也是对Jbdc的再一次封装,不管怎么进行包装,还是会有获取链接、preparedStatement、封装参数、执行这些步骤的。本文来探索一下其运行原理。下面从最简单的mybatis使用案例,来看看mybatis的步骤。

2025-04-01 22:00:35 800

原创 Java中的Map & CAS & AQS

原本是想在写完ConcurrentHashMap后,把cas补上,谁知道先写了cas,aqs。。。。AQS 即 AbstractQueuedSynchronizer【抽象队列同步器】,是 Java 并发包中很多同步器实现的基础框架,如Semaphore等。AQS作为一个抽象类,通常是通过继承来使用的。它本身是没有同步接口的,只是定义了同步状态和同步获取和同步释放的方法。用于构建锁和同步器,它提供了一种在多线程环境下管理同步状态(state)、线程排队等待以及线程唤醒的机制。

2025-03-23 14:02:44 564

原创 数据库MVCC详解

数据库:MySQL。【很多主流数据库都使用了MVCC,比如MySQL的InnoDB引擎、PostgreSQL、Oracle】MVCC,全称Multi-Version Concurrency Control,即多版本并发控制。是数据库管理系统中的一种并发控制方法。它通过保存数据的历史版本来实现,这样。这样的话,提高了并发性能。比如说,当一个事务开始读取数据时,它会看到数据库在某个时间点的快照,之后即使其他事务修改了数据,这个事务看到的还是旧版本的数据,直到它提交或者回滚。

2025-03-20 21:31:10 1495

原创 SPI机制

不修改代码,根据加载的包不同,调用不同的实现方式。先定义接口提供者创建项目里面只定义一个接口 UserService

2025-02-28 15:27:33 582

原创 Rpc导读

GTIEE:https://gitee.com/quercus-sp204/all-rpc 【参考源码 yrpc】

2025-02-21 15:43:47 1153

原创 跟着路线混,三天饿九顿

java基本语法、常用类String,包装类,时间,大数计算等等。java集合【适当debug跟进源码,list,set,map,queue,栈等等】java多线程【各种锁、线程间通信、线程安全的集合类、进程与线程、ThreadLocal,CompletableFuture…】网络编程 【阻塞式io,同步非阻塞io】java反射的使用。

2025-02-19 16:50:00 339

原创 Spring定时任务的秘密

在 Spring 框架中,定时任务主要通过@Scheduled注解或接口实现。

2025-02-14 10:06:19 565

原创 数据库事务详解

今天聊一聊数据库的事务,这里以MySQL为例子。在MySQL中,事务(Transaction)是一组SQL操作的集合,这些操作要么,确保数据的一致性和完整性。。

2025-01-22 19:29:58 1171

原创 SpringBoot原理分析-1

*自动配置: **以spring-boot-starter-web为例子,引入该启动器,他的父级pom里面有spring-boot-starter,spring-boot-starter的父级pom有spring-boot-autoconfigure。spring-boot-autoconfigure里面有Spring官方定义的所有场景。注解:这是自动配置的入口,通常由注解组合引入。文件:Spring Boot 通过文件加载自动配置类。条件化配置:通过系列注解(如等)实现按需加载配置。

2025-01-05 15:16:23 763

原创 Nginx + Lua脚本打配合

今天实现一个非常简单的例子.那么就可以通过nginx反向代理,就达到了不暴露端口的目的了。但是,我又不想别人随便访问,要加一些限制。比如必须要有指定的请求头。用nginx配置就行了呗。但是,还是不安全呐,随便别人如果F12查看请求的话,还是可以发现我的请求头啊。他随便捏造一个也可以访问这个应用了呀。我这里是宝塔面板的openresty,安装的自带有redis模块。(这个安装就不放了)

2024-12-23 20:00:50 664

原创 代理&动态代理

这些例子都展示了代理模式如何在不同的场景中提供了对“真实对象”的间接控制。通过上面这些例子,可以看到“代理”大致有三个角色:客户端(使用者)、代理(中间层)、真实对象(交付委托的对象、目标对象)。通过使用代理模式,系统能够在不直接暴露真实对象的情况下,提供更多的控制和优化,这对于实际的软件设计和架构非常重要。

2024-12-02 16:38:15 699

原创 批量插入操作

记录一次批量操作数据库,sqlServer服务器参数过多问题。

2024-11-28 14:29:23 1087

原创 Java Stream与多线程

学习了尚硅谷的JUC,周阳老师讲的商城比较价格的案例,自己模拟了一个多线程的demo, 多线程处理任务并且汇总结果,出现了疑问,实例代码放在下面,读者有兴趣的话可ctrl+cv玩一玩

2023-08-31 09:08:35 427

原创 Redis序列化、乱码问题

Redis序列化

2023-01-16 10:40:08 1755

原创 考研图论算法

tulun

2022-10-20 11:54:13 447

原创 PTA 浪漫侧影(25分)

PTA 浪漫侧影

2022-04-19 12:37:20 1228

原创 SpringSecurity 入门

SpringSecurity 入门一步一步来。集各家之所长,师从 尚硅谷、狂神、三更草堂;如果文中发现跟他们有类似的,不用想,就是他们那里拿来的事先声明,本人很菜,其中有说的误人子弟的,请大家指出来。环境:idea2020.1 SpringBoot2.6.3 MyBatisPlus Maven3.6.3 SpringSecurity Lombok MySQL8.0.23…总述:先根据三家总的说一下,大致可以划分为两类: **1.**前后端不分离 *

2022-02-16 14:54:19 1146

原创 蓝桥杯 试题 历届真题 左儿子右兄弟

2022-01-30 13:19:23 2761 2

原创 自己做的学生社团网站--。。

在我的资源里面找吧,承诺免费

2021-11-29 11:58:41 567 2

原创 洛谷P1114 “非常男女”计划

洛谷P1114 “非常男女”计划题目:题目描述近来,初一年的XXX小朋友致力于研究班上同学的配对问题(别想太多,仅是舞伴),通过各种推理和实验,他掌握了大量的实战经验。例如,据他观察,身高相近的人似乎比较合得来。万圣节来临之际,XXX准备在学校策划一次大型的“非常男女”配对活动。对于这次活动的参与者,XXX有自己独特的选择方式。他希望能选择男女人数相等且身高都很接近的一些人。这种选择方式实现起来很简单。他让学校的所有人按照身高排成一排,然后从中选出连续的若干个人,使得这些人中男女人数相等。为了使活

2021-11-14 13:06:41 935 2

原创 洛谷 P1141 01迷宫

洛谷 P1141 01迷宫BFS或者并查集题目描述有一个仅由数字0与1组成的n×n格迷宫。若你位于一格0上,那么你可以移动到相邻4格中的某一格1上,同样若你位于一格1上,那么你可以移动到相邻4格中的某一格0上。你的任务是:对于给定的迷宫,询问从某一格开始能移动到多少个格子(包含自身)。输入格式第1行为两个正整数n,m。下面n行,每行n个字符,字符只可能是0或者1,字符之间没有空格。接下来m行,每行2个用空格分隔的正整数i,j,对应了迷宫中第i行第j列的一个格子,询问从这一格开始能移动到多少

2021-11-12 21:58:22 264

原创 试题 算法训练 预备爷的悲剧

试题 算法训练 预备爷的悲剧题目资源限制时间限制:1.0s 内存限制:512.0MB问题描述英语预备爷gzp是个逗(tu)比(hao),为了在即将到来的英语的quiz中不挂科,gzp废寝忘食复习英语附录单词表,俨然一场人间悲剧。不过上天有好生之德,上帝扔给了gzp一张纸,上面记载了将要考到的单词。不过gzp是个逗比,之前复习的东西全忘记了,所以他又要再来一次复习。不过已经知道了要考的单词,所以不需要复习单词表的所有页数。因此,现在需要你帮助他求出有多少页纸需要复习。他会告诉你每个单词会在哪几页

2021-11-11 15:51:56 1150

原创 蓝桥杯 试题 算法训练 进击的青蛙

蓝桥杯 试题 算法训练 进击的青蛙资源限制时间限制:1.0s 内存限制:256.0MB问题描述青蛙X正准备跳过一座桥,这座桥被划分为N段,记青蛙所在的起始点为0,桥的末端为N。桥上的一些点有一些石子,这些点是无法跳上去的。青蛙每次跳跃能向前跳跃+1,+2,+3段,现在请你算出跳到末端的总方法数。如果无法到达,请输出”No Way!"输入格式输入数据共N行。第一行一个数字N,代表桥的长度。接下来N行,表示从点1~N的道路情况,每行一个数字0或1,1表示有石子。输出格式输出一行,为一个整

2021-11-08 14:07:46 2394 6

原创 蓝桥杯 试题 算法训练 印章

试题 算法训练 印章动态规划:资源限制时间限制:1.0s 内存限制:256.0MB问题描述共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。输入格式一行两个正整数n和m输出格式一个实数P表示答案,保留4位小数。样例输入2 3样例输出0.7500数据规模和约定1≤n,m≤20题目意思简洁明了。。。。动态规划:1.设置状态(看是一维数组还是二维数组,一般的题目都是二维数组,经验之谈)2.找状态之间的关系,3.写代码这其中1,2

2021-11-02 14:29:21 24598 111

原创 JavaWeb保姆级入门

JavaWeb保姆级入门first:技术:Servlet && JSP环境:Idea2020.1、Tomcat 9.0.41、Maven 3.6.3步骤:1.新建一个Maven项目由于一个项目里面有很多文件,我们要养成一个习惯:同一个项目的文件放在同一个文件夹里面!Finish之后,This Window选项表示Idea不用新建窗口,关闭当前项目,用来显示现在创建的项目,New Window就是不用关闭当前项目,新建窗口显示我们创建的项目!!!2.添加Web支持建好之

2021-10-25 22:44:16 223 2

原创 月赛题目1025

月赛题目:1.无限增长有一个无限长的数轴,小IT想要知道某个点是否在数轴上。起始时,数轴上只有一个点1,数轴遵循这样一种特点:如果数 x 在数轴上,那么x⋅a和x+b也在数轴上。现在,小IT给定a,b,想问你n是否在数轴上,如果在输出Yes,否则输出No。输入格式:第一行为一个整数T,表示T(1≤T≤10^5)组数据对于每一组数据在一行中输入n,a,b,(1≤n,a,b≤10^9)输出格式:对于每一组测试数据,在一行中输出Yes或者No输入样例:524 3 510 3 623

2021-10-25 14:34:11 254

原创 并查集跟map 洛谷家谱

并查集跟map题目:(来自洛谷:家谱)题目背景现代的人对于本家族血统越来越感兴趣。题目描述给出充足的父子关系,请你编写程序找到某个人的最早的祖先。输入格式输入由多行组成,首先是一系列有关父子关系的描述,其中每一组父子关系中父亲只有一行,儿子可能有若干行,用 #name 的形式描写一组父子关系中的父亲的名字,用 +name 的形式描写一组父子关系中的儿子的名字;接下来用 ?name 的形式表示要求该人的最早的祖先;最后用单独的一个 $ 表示文件结束。输出格式按照输入文件的要求顺序,求出每一

2021-10-23 20:48:08 202

你们需要的前缀和差分在这个里面.pdf

适合中国人

2021-10-25

SpringSecuritydemo01

无描述, 数据库工具navicat

2022-02-16

学生社团网站-功能待完善,SpringBoot

SpringBoot Thymeleaf MySQL ajax jquery

2021-11-29

空空如也

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

TA关注的人

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