- 博客(80)
- 收藏
- 关注
原创 个人简历,以及学习总结(学java的同学可以参照一下学什么)
首先这个简历,肯定是不够的,至少保证两个项目,覆盖基本java基本业务的所有框架,目前博主还在写中,但我希望的是同学每个完成的项目都要深入了解,而不是速成项目,因为即使去实习了,不能转正还是很头疼的,大家要好好学习技术和业务场景实现。获取项目的来源首先是黑马,第一个项目可以速成了解项目的大致编写结构,技术如何使用的,以及业务的编写。第二个项目就是能写在简历上面的项目,可以仿照各大应用,如微信,哔哩等,黑马最新的学成在线项目也可以,还有就是进行项目购买,和github。在这个场景下,其实底层就是增删改查。
2026-01-11 20:13:06
352
原创 Java基础学习
Java 语言特点(跨平台、面向对象、自动内存管理)JVM、JRE、JDK 的作用与区别开发环境搭建(安装 JDK、配置环境变量、IDE 使用)
2025-05-16 20:49:01
568
原创 Java 反射机制详解:为什么 Spring、MyBatis 这类框架离不开反射?
摘要:Java反射机制允许程序在运行时动态获取类信息并操作对象成员,是支撑Java框架的核心技术。反射通过Class对象实现,该对象在类加载时由JVM创建,包含类的完整元数据。反射操作分为4步:获取Class对象、解剖类元数据、突破访问权限、动态执行操作。反射虽提供灵活性,但存在性能损耗和破坏封装等缺点。Spring等框架依赖反射实现依赖注入等功能,通过扫描注解动态创建和管理对象。理解反射机制对掌握Java底层原理和框架实现至关重要。(149字)
2026-04-12 15:47:26
302
原创 一文搞清楚“线程安全“,通俗易懂看完即可“装币”
特性互斥锁(Mutex)CAS比喻钥匙+锁,一次只进一人带比较的原子橡皮擦,不改就重试冲突时行为拿不到钥匙就阻塞等待(放弃 CPU)失败就自旋重试(继续占用 CPU)适用场景临界区代码长、冲突频繁临界区代码极短、冲突较少优点不会浪费 CPU 空转无上下文切换,轻量缺点阻塞和唤醒开销大长时间自旋浪费 CPU,可能 ABAConcurrentHashMap 解决原理:CAS 管空桶,互斥锁管冲突桶,volatile 管读。写空桶→CAS(无锁抢占,硬件原子操作)。写冲突桶锁桶头。
2026-04-10 15:32:49
508
原创 @Transactional事务失效总结
是 Spring 提供的强大事务管理工具,但其底层依赖于 AOP 代理。要确保事务正确生效,必须保证调用链路上所有标注了的方法都通过 Spring 代理对象执行。最常见的失效场景是内部方法自调用非 public 方法以及异常被吞没。通过注入自身代理、拆分 Bean 或使用可以解决自调用问题。理解代理机制和事务属性,才能在复杂业务中灵活应用事务失效原理剖析Spring 声明式事务的核心是 AOP 代理:通过代理对象拦截目标方法,在方法执行前后添加事务管理逻辑(开启、提交、回滚)。事务管理器与当前线程绑定(
2026-03-31 20:57:12
375
1
原创 文件上传流程(minio)
前端上传本地文件MD5值,查找数据库,存在在查看minio上也没有文件,有直接返回,数据库没有,或者minio没有,检测分块文件是否上传。没有则上传分块文件,检测分块上传完成,合并分块文件。6. 校验合并后的文件 MD5。7. 保存文件信息到数据库。1. 检查文件是否存在。返回成功,使用已有文件。2. 检查分块是否上传。4. 验证分块上传成功。
2026-03-31 14:59:19
372
原创 java经典场景题 (重要)
但是记住,阔再多,数据库扛不住,在多也没有,日活高,像微信,qq等数据库一定是分库分表的,按用户id哈希,将数据打散到库里面。
2026-03-30 13:54:38
230
原创 MySql,查询父子节点,内连接使用问题
查不出来的原因使用了INNER JOIN,要求父节点必须有对应的子节点新增的父节点还没有子节点,所以无法匹配。
2026-03-18 14:09:41
225
原创 不同操作数据库语言,实现实体类的属性与数据库字段进行匹配的方法
你的项目特点推荐框架核心理由常规业务系统,主要是单表CRUD,追求极速开发。社区庞大,资料丰富,BaseMapper的组合已经能覆盖绝大多数场景,效率极高。新项目,表关联复杂,有数据脱敏、多租户等强需求,希望代码更简洁优雅。设计更新,注解体系强大,尤其是@Relation和能解决MP需要写很多Service层代码才能解决的痛点,潜力巨大。遗留系统维护,或者需要极致的SQL优化控制。MyBatis最原始的XML映射给你100%的SQL控制权,没有什么是自己写SQL解决不了的。
2026-03-16 15:17:49
401
原创 RabbitMQ消息队列(异步通信)从安装到大神。
同步通讯(视频聊天),异步通讯(微信聊天)。传统同步通信模式。后续业务依赖上一步业务结果,拓展性差,容易崩。异步通信,准备一个MQ。用户登录发生用户信息到MQ,登录服务结束(可以发现业务非常短,那么他的并发能力是不是可以提高)其他服务监听MQ,如风控服务,短信微服务,监听到MQ,收到消息后,进行对应的工作。这样开发效率大大提高,在开发当中运用非常多。黑马课程内容,图中知识点,本文章均会讲解。如果业务需求与其他业务没有关系,不使用同步调用,如果业务需要其他业务或者依赖其他业务则使用同步调用。访问。
2026-03-05 14:59:39
372
原创 CDN静态资源分发,负载层分发请求,微服务层详解,小白也能看懂
先来个官方定义:CDN全称ContentDeliveryNetwork,即内容分发网络,本系统所有静态资源全部通过CDN加速来提高访问速度。系统静态资源包括:html页面、js文件、css文件、image图片、pdf和ppt及doc教学文档、video视频等。他的存在有什么用呢?来一个场景:我现在在成都,但是我的服务器在上海,如果我直接访问上海的服务器上的资源是不是很耗时间。那么CDN的作用就出来了,他会把那些比较耗时的,流量大的,静态资源,转发到成都的服务器让我就近访问。
2026-02-11 17:08:57
380
原创 多级缓存必要性
分层设计:L0→L1→L2→L3,逐层降级容量规划:各级缓存容量呈倒金字塔形过期策略:越靠近用户,过期时间越短一致性保障:通过消息同步或延迟双删降级熔断:任何一级缓存失败不影响整体可用性热点探测:动态识别并特殊处理热点数据。
2026-01-25 15:26:08
398
原创 Redis学习笔记
NoSQL非关系型数据库特性:非结构化,无关联,非SQL,BASE,无事务存储方式:内存扩展性:水平使用场景:数据结构不固定 对一致性,安全性要求不高,对性能要求特征:键值型 value支持多种不同数据结构,功能丰富单线程,每个命令具备原子性,安全的,不会出现命令执行到一半其他命令插进来的情况。低延迟,速度快(为什么,他是基于内存存储速度快,与电脑性能有关系,使用io多路复用,良好的编码基于c语言编写)MYSQL是磁盘存储,内存速度比磁盘快很多。
2025-12-23 19:45:53
672
原创 Spring Data Redis 中的 opsFor 方法详解
*** 自定义 Operations 扩展*//*** 自定义操作:带重试机制的设置操作*//*** 带重试的 set 操作*//*** 带条件判断的设置*//*** 提供自定义操作接口*//*** 实现类*/@Overridetry {throw e;try {throw new RuntimeException("重试被中断", ie);@OverrideopsFor类型安全的操作接口。
2025-12-23 19:42:34
518
原创 Spring Data Redis 使用详解
Spring Data Redis 使用详解摘要:本文详细介绍了Spring Data Redis的核心组件和使用方法,包括Maven依赖配置、application.yml文件设置,以及RedisTemplate的核心配置和操作方法。主要内容涵盖连接池配置、JSON序列化处理、键值操作(如判断key存在、删除key、设置过期时间等),为开发者提供了完整的Redis集成解决方案。通过合理的配置和丰富的API,可以高效地实现Redis数据操作功能。
2025-12-23 16:58:36
420
原创 游戏音效脚本添加
2. UI音效触发器脚本3. 游戏块音效脚本4. 音效设置UI面板5. 音频混合器设置(AudioMixer)创建一个AudioMixer并命名为"MainMixer",设置以下参数:背景音乐:方块音效:UI音效:道具音效:
2025-12-17 13:14:30
324
原创 Redis学习文档
Redis是一个高性能的键值对存储数据库,在项目中广泛应用于用户认证、验证码、心跳检测、联系人管理、会话管理和系统设置等场景。通过合理的配置和使用,可以显著提高系统的性能和可靠性。本文档结合项目中的实际使用情况,讲解了Redis的基本原理、重要参数、核心方法和最佳实践,希望对学习和使用Redis有所帮助。在实际开发中,需要根据业务场景选择合适的Redis数据结构和过期时间,同时注意监控Redis的使用情况,及时发现和解决问题。
2025-12-10 20:15:19
770
原创 【redis】缓存穿透 缓存击穿 缓存雪崩
摘要:缓存穿透、击穿和雪崩是分布式系统中常见的三种缓存问题。缓存穿透指查询不存在的数据导致频繁访问数据库,可通过布隆过滤器或缓存空值解决;缓存击穿是热点数据失效瞬间引发大量并发查询,常用互斥锁或逻辑过期方案;缓存雪崩则是大量key同时失效或缓存服务宕机,需采用随机过期时间、多级缓存和服务降级等措施。三种问题都会导致数据库压力骤增,但成因和解决方案各异,实际应用中需结合多种策略构建健壮的缓存体系。(150字)
2025-12-10 19:58:15
976
原创 自定义注解@GlobalInterceptor+AOP切面编程实现自定义校验
是一个自定义的,主要用于在方法执行前后进行统一的和等操作。:替代在每个Controller方法中重复编写权限校验代码:自动检查用户是否登录:验证用户是否为管理员:可以在方法执行前后进行统一的处理。
2025-12-09 16:01:20
678
原创 彻底搞懂Java后端循环依赖:Spring解决原理+实战避坑指南(面试高频)
本文深入解析Java后端开发中的Spring循环依赖问题及其解决方案。首先介绍了循环依赖的产生原理,即Bean之间相互依赖形成闭环导致初始化困境,并详细讲解了Spring的三级缓存机制(一级缓存存放完全初始化的Bean,二级缓存存放未完成属性注入的早期Bean,三级缓存存放Bean工厂)如何通过提前暴露未完全初始化的Bean来打破循环。接着提供了5种解决方案,按推荐优先级排序:1)重构设计消除循环(根本方案);2)Setter/Field注入(Spring自动解决);3)@Lazy延迟加载(构造器注入专用)
2025-12-07 15:55:42
1235
1
原创 想编写自己微信app吗。从基础网络编程到-Netty网络应用框架。快速开发高性能、高可靠性的网络服务器和客户端。
Netty是一个异步事件驱动的网络应用框架,用于快速开发高性能、高可靠性的网络服务器和客户端。// 聊天消息协议// 消息类型:1-文本 2-图片 3-系统消息// 发送者// 内容// 时间戳// 自定义编解码器@Override高性能:支持大量并发连接易用性:简化网络编程复杂度扩展性:方便添加新功能和协议稳定性:经过大规模生产环境验证。
2025-12-01 17:44:22
1011
原创 心跳机制详解
/ 定期发送,保持NAT映射。// 收到响应,重置计数器。// 后台模式60秒一次。// 10秒内未收到pong,认为连接异常。// 连续3次无响应,触发重连。// WiFi 30秒。// 移动网络15秒。// 在NAT环境下,长时间无数据会被路由器清除映射表。1, // 1秒后开始重连。5, // 每5秒重试一次。// 发送失败,连接可能已断开。.load(0.5) // 当前负载。
2025-12-01 17:43:19
810
原创 [特殊字符] 高精度四则运算全攻略(数组实现 )
运算复杂度思路核心加法O(n)模拟进位减法O(n)模拟借位乘法O(n²)竖式乘法除法O(n)试商除法“高精度算法的核心在于:模拟人类的竖式运算。操作关键思路加法逐位相加 + 进位减法逐位相减 + 借位乘法双重循环 + 进位除法按位试商 + 余数维护高精度算法不仅能解决溢出问题,更能锻炼你的算法模拟能力和逻辑严密性。高精度运算是算法学习的必修课。理解原理 + 模拟过程,才是真正的算法思维。
2025-11-03 15:46:05
410
原创 Java IO流学习指南:从小白到入门
为了简化上面的方法,io框架将上面的内容封装成了一个个内容,方便我们直接调用,说白了上面学了都没用,直接用框架就行,但是我们还是要掌握数据流动的方式。1. IOUtils处理输入/输出流的工具类。方法列表与作用方法作用复制输入流到输出流(自动缓冲)将输入流内容转为字符串按行读取输入流为字符串列表示例代码// 1. 复制流// 将 input.txt 内容复制到 output.txt// 2. 输入流转字符串// 输出文件内容// 3. 按行读取// 逐行打印。
2025-05-24 20:33:44
960
原创 纸牌游戏(基于集合,和自定义排序实现)
寻找需要的类1.房间类,用来控制游戏的开始2.纸牌类,包含花色,大小,用来排序的value值。流程:创建54张牌,51张随机发三个玩家(创建一个集合存牌),最后三张随机发个一个玩家当地主,创建排序方法对牌进行排序。card类//运行的主函数房间类。
2025-05-23 21:02:00
402
原创 一文搞懂Java Stream流:告别繁琐循环,体验函数式编程之美
Stream优势总结声明式编程:关注"做什么"而非"怎么做"代码简洁:减少70%以上的样板代码易于并行:parallelStream()轻松实现并行处理后续学习建议掌握更多收集器(Collectors)学习Optional处理空值了解基本类型流(IntStream等)探索流的短路操作(findFirst等)小测试:尝试用Stream将字符串列表["3", "5", "7"]转换为整数,筛选出大于4的数字,最后计算平方和。答案可在评论区交流!
2025-05-23 12:55:00
696
原创 Java集合框架入门指南:从小白到基础掌握
集合框架的学习就像搭建积木,理解各个组件的特点后,就能根据需求灵活组合。手写各集合的CRUD操作比较不同实现类的性能差异尝试实现自定义对象的排序探索Map接口及其实现类记得在实际编码中多使用Java Doc(Ctrl+Q查看方法说明),逐步培养选择合适集合类型的能力。
2025-05-22 19:47:10
1050
原创 java异常处理
/ 获取标准错误码合理的异常处理能够提升系统的:健壮性:防止程序意外终止可维护性:快速定位问题根源用户体验:提供友好的错误提示随着微服务架构的普及,异常处理需要结合:分布式追踪(如SkyWalking)熔断降级(如Sentinel)智能告警(如Prometheus)
2025-05-20 17:07:26
1099
原创 java的arraylist集合
System.out.println(target + " 的索引是: " + index);System.out.println("找到了: " + result.get());System.out.println("8的索引是: " + index);"存在" : "不存在");System.out.println("找到了 " + target);System.out.println("没找到 " + target);System.out.println(target + " 不存在");
2025-05-19 17:33:59
833
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅