- 博客(24)
- 收藏
- 关注
原创 定时任务Spring_Task
Spring定时任务执行步骤:引入依赖→编写执行方法→配置任务调度(XML/注解)。Cron表达式包含6-7个字段(秒分时日月周[年]),支持特殊字符实现灵活调度。注解方式需开启@EnableScheduling并标记@Scheduled方法。默认单线程执行可通过配置线程池优化性能,SpringBoot项目需在启动类添加@EnableScheduling注解。文中提供20余个典型Cron案例参考,涵盖分钟/小时/日期/工作日等常见触发场景。
2025-06-10 09:30:27
281
原创 AOP面向切面编程
摘要:AOP(面向切面编程)是一种在不修改源码的情况下增强方法功能的技术。其核心术语包括连接点、切点、通知和切面,主要应用于事务处理、日志管理等场景。实现AOP需要配置依赖、创建切面类,并通过XML或注解方式定义切点表达式和通知类型(如前置、后置、环绕等通知)。注解配置更简洁,可通过@Aspect和@EnableAspectJAutoProxy实现。AOP的优势在于减少重复代码,提高开发效率和可维护性。
2025-06-10 09:01:03
740
原创 kafka快速入门与知识汇总
Kafka快速入门与知识摘要 Kafka是一款高性能分布式消息中间件,广泛应用于大数据领域。本文从应用场景、架构设计到基础操作进行了系统介绍: 核心优势: 应用解耦 - 通过异步消息传递降低服务间耦合 异步提速 - 显著提升系统响应速度 削峰填谷 - 缓冲流量冲击保护后端系统 架构组成: 生产者/消费者模型 Topic主题分区存储 Broker集群协调管理 Zookeeper统一协调 基础操作指南: 服务配置启动 Topic管理命令 消息发送/消费实践 生产者原理: 消息封装(Topic/Key/Value
2025-06-10 00:25:10
1394
原创 单调读一致性(Monotonic Reads Consistency)详解
单调读一致性在保证"不退回旧数据"的同时,比强一致性有更好的性能表现。选择合适的实现方案需要权衡系统复杂度、性能要求和业务需求。理解这些算法原理有助于设计更合理的分布式架构。
2025-04-20 09:29:19
316
原创 深入理解后读一致性及其解决方案
后读一致性是保障用户体验的重要特性,特别是在用户生成内容、实时交互等场景。理解各种解决方案的优缺点,才能根据业务特点做出合理选择。在分布式系统的设计中,我们总是在一致性、可用性和性能之间寻找平衡点。希望这篇文章能帮助你理解后读一致性及其解决方案。如果你有更多问题或不同见解,欢迎在评论区讨论。
2025-04-20 08:52:03
492
原创 从0~1写一个starer启动器
使用过Spring框架的伙伴都知道,虽然Spring在一定程度上帮助我们简化了集成其他框架,但在集成框架的同时仍少不了大量的XML配置,这些繁琐的工作无疑会加重我们的工作任务。而Spring Boot相较于Spring的一个突出优势即为简化了大量繁琐的配置,采用约定大于配置原则,让程序员将更多的精力花费在业务上。在一个基于Spring Boot搭建的Web项目中,我们常常使用。
2025-04-16 19:06:01
687
原创 布隆过滤器
一个说「不存在」绝对靠谱,说「存在」可能误判的概率型数据结构核心组件位数组(Bit Array):长度为N的二进制向量K个哈希函数:将元素映射到位数组的不同位置。
2025-04-03 14:30:29
362
原创 《程序员的摸鱼哲学:如何在IDE里开一场代码主题相声大会》
"以上内容纯属虚构,如有雷同——建议立即ctrl+s保存摸鱼证据。毕竟生活就像递归函数,总得有个终止条件。(扫描二维码查看老板看不见的隐藏章节:《用F12在年会抽奖系统中植入后门の艺术》)
2025-04-03 08:40:31
716
原创 对G1垃圾回收器的个人理解
G1将堆内存划分为多个区域,每个区域可以充当为Eden、Survivor、Old、Humourgourous(对象大小超过区域大小的一半),区域间不要求物理上连续。G1的工作流程主要分为以下几个操作:youngGC(采用复制算法清除Eden和Survivor区域的垃圾,存活对象复制到空闲的Survivor或者晋身到老年代,该操作会导致STW,因为会造成对象的移动,引用需要调整);mixedGC:并发标记完成后,将新生代垃圾和高垃圾比例的老年代区域回收(包括Humongous区域)。
2025-04-01 10:10:26
259
原创 redis 几种常见数据类型
String是redis中我们最常用的一种数据类型,他是二进制安全的,可以存储任意格式的数据,像png,序列化对象等,同时还支持原子操作和键过期设置。当数据量较小时使用ziplist(压缩列表)作为存储结构,特点是内存紧凑,当数据量越来越大时,性能下降,转化为hashtable(哈希表)存储。可以快速统计不重复元素的个数(不精确),适合用于统计大量数据,比如说热搜访问次数。特点:和set几乎一样,多了个排序功能,可以按照score排序。每一位只存储0或1,1代表用户在线,0表示不在线。
2025-03-28 14:09:00
288
原创 mybatis缓存机制
缓存是保存在内存中的一块区域。使用缓存可以避免与数据库的直接交互,通过缓存将数据返回,提升查询效率的同时减少对数据库的压力。一级缓存:默认开启,注意会话内数据一致性二级缓存:读多写少用,写多读少慎用分布式环境:必须配合集中式缓存(如Redis)
2025-03-27 20:46:12
881
原创 rocketmq从入门到精通~
现如今,各大网站访问流量越来越大,保证系统可用的同时提升用户的体验至关重要。RocketMQ 是一个由 Apache 开发的高性能、高可靠性、高实时性的分布式消息中间件平台。它支持多种消息传输模式,包括普通消息、顺序消息、事务消息和定时/延时消息,适用于微服务和大数据场景。RocketMQ 以其云原生、高吞吐量、流处理和金融导向的特点,广泛应用于物联网、数据集成、微服务等领域。(引用百度)总结:是一个高可用、低延迟、高可靠的消息中间件,可用于异步提速、 削峰填谷、应用解耦。RocketMQ的核心优势在于。
2025-03-27 11:49:47
2255
原创 Spring Security 入门
UserDetailsService用于处理自定义认证逻辑,它可以帮助我们检查用户密码是否正确,以及封装用户信息等操作。执行流程:用户提交表单,执行重写的loadUserByUsername方法,根据传入的用户名查找数据库(需程序员手动编写),如果用户为空,抛出异常,非空则封装权限,将用户名密码及权限封装为UserDetails对象,框架会将UserDetails中的密码项与表单中的密码自动进行比对。@Service。
2025-03-25 16:40:14
1698
原创 JVM类加载机制
JVM 的类加载机制是 Java 程序运行的核心部分之一,它负责将.class文件加载到内存中,并生成对应的Class对象。理解类加载机制对于深入掌握 Java 程序的运行原理、解决类加载相关的问题(如)以及实现自定义类加载器都非常重要。类的加载主要包括三个步骤:加载、链接、初始化。下面我们来详细分析这三个步骤1、加载:将 .class 文件加载到JVM内存中2、链接验证:检查字节码文件是否符合JVM规范。
2025-03-22 21:21:28
405
原创 Java 垃圾回收算法
JVM的垃圾回收机制帮助java程序员管理内存,提高了开发效率,而理解垃圾回收机制可以帮助我们提高代码质量,提升自己的硬实力。总的来说,Java的垃圾回收算法经过不断的优化和改进,采用了多种算法相结合的方式,以提高回收效率和减少内存碎片。分代回收算法是其中比较重要的一种,能够有效提升垃圾回收的效率。
2025-03-22 09:39:49
1010
原创 Java 中的四种引用
本文详细介绍了Java中强引用、软引用、弱引用、虚引用四种引用方式的特点和使用,通过了解他们各自的特性,可以帮助我们在开发过程中避免很多问题
2025-03-21 19:59:13
435
原创 Socket网络编程
提示:在学习网络编程之前我们先简单了解一下什么是计算机网络用一句话来说:计算机网络利用通信线路将所在不同位置的两台计算机连接起来,从而共享资源。
2025-03-21 10:05:53
867
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人