自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 矩阵与线性变换

本文介绍了矩阵与线性变换的基本概念及其应用。矩阵被视为描述权重的表,可通过乘法进行维度修改,实现线性变换。线性变换本质上是点的偏移,能保持图形平行性但改变面积,在3D渲染等场景中有重要应用。文章指出多层线性变换可简化为单次变换,而引入非线性激活函数是打破线性限制、实现更复杂变换(如绘制圆形)的关键。这些原理为神经网络中的权重更新和维度变换提供了数学基础。

2026-07-16 11:22:42 256

原创 从向量到概览的基本AI模型分析

本文介绍了向量的概念及其在计算机和AI中的应用。向量通过多维数字描述对象,帮助计算机理解实体间的关系。现代AI(如GPT-3)使用高维向量(如12288维)精确区分对象。向量不仅通过大小比较相似度,更注重方向的一致性,利用夹角公式衡量相似性。向量的加减法在几何上遵循平行四边形法则,在AI中可用于语义运算(如“国王-男人+女人≈女王”),实现特征的数学化操作,提升相似度比较的效率和准确性。

2026-07-16 11:19:46 182

原创 苍穹外卖实现遇到的一些问题

本文摘要: 自定义切面实现公共字段自动填充,通过定义@AutoFill注解和切面类AutoFillAspect,利用AOP在方法执行前自动设置创建/更新时间等字段。 阿里云OSS文件上传实现,通过配置类加载OSS参数并创建工具类,包含endpoint、accessKey等关键配置。 文件上传接口设计,使用@RestController提供通用上传功能,通过MultipartFile接收文件并调用OSS工具类上传。 (149字)

2026-02-23 23:44:25 660

原创 苍穹外卖项目实战笔记:从 AOP 反射到 SQL 深度解析

本文总结了"苍穹外卖"项目中的关键技术实现。通过AOP+反射实现公共字段自动填充,使用自定义注解标记方法,利用切面拦截并反射赋值。采用阿里云OSS存储文件,通过配置类管理工具实例。在数据库操作中,利用主键回填和批量插入优化性能,并通过多表连接查询处理菜品分类数据,详细区分了INNER JOIN和LEFT JOIN的应用场景及ON与WHERE条件的本质差异。这些技术方案体现了Spring生态在工程实践中的高效应用。

2026-02-23 23:41:10 537

原创 Java反射:运行时动态操作类的秘密武器

Java反射机制允许程序在运行时动态获取类信息并操作对象,提供动态性、灵活性、通用性和解耦性。获取Class对象有三种方式:类名.class(性能最优)、Class.forName(动态加载)和getClass()(对象实例)。反射可操作构造方法(通过getConstructors/getDeclaredConstructors)、成员变量(通过getFields/getDeclaredFields)和方法(通过getMethods/getDeclaredMethods),其中setAccessible(t

2026-02-21 21:58:17 695

原创 一笔一画拆解 Web 请求:苍穹外卖后端架构逻辑图鉴

本文介绍了Java中DTO(数据传输对象)的设计与实现。EmployeeLoginDTO类作为数据传输对象,包含用户名和密码字段,使用@Data、@ApiModel等注解简化代码并生成API文档。文章通过员工登录功能展示了DTO的应用流程:Controller接收DTO参数,Service层进行业务逻辑处理(包括用户名验证、密码比对等),最后返回视图对象VO。同时介绍了JWT令牌生成、Spring注解(如@RestController、@Autowired)的使用方法,以及属性配置类JwtPropertie

2026-02-19 14:00:10 511

原创 Redis核心实战:五大数据类型及常用命令全解析

Redis提供了五种核心数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)和SortedSet(有序集合)。String是最基础的类型,支持整数值操作;Hash适合存储对象;List是双向链表,常用于消息队列;Set是无序唯一集合,支持交并差运算;SortedSet在Set基础上添加分数排序功能,适用于排行榜等场景。每种类型都有对应的操作命令,如SET/GET(String)、HSET/HGET(Hash)、LPUSH/LPOP(List)等,并对应不同的Java集合实现。

2026-02-12 14:24:33 554

原创 一文打通异步任务执行的“任督二脉”

Java通过ExecutorService将任务提交与执行解耦,使开发者只需关注任务提交和结果获取,无需处理线程创建等底层细节。示例代码展示了使用单线程线程池执行Callable任务的基本流程:通过Executors.newSingleThreadExecutor()创建线程池,提交任务后返回Future对象,通过get()获取异步执行结果。分析线程池核心参数和任务封装机制,如将Runnable/Callable统一封装为FutureTask,并利用volatile保证状态可见性。execute方法实现了任

2026-02-09 00:02:20 563

原创 Java中ReentrantLock和Condition的实现原理

摘要:本文分析了Java中使用ReentrantLock和Condition实现的生产者-消费者模型,相比wait/notify具有精准唤醒优势。通过Condition将线程按条件分类,减少了无效唤醒和锁竞争。重点解析了await()方法流程:检查中断→加入条件队列→释放锁→判断是否被signal唤醒→重新获取锁。内部通过Node维护条件队列,配合unlinkCancelledWaiters清理无效节点,确保线程安全。该机制通过分离条件队列和同步队列,实现了高效的线程间通信。

2026-02-06 12:16:52 376

原创 ReentrantLock从获取到释放的全过程

摘要:本文详细分析了Java8中ReentrantLock的加锁(lock)和解锁(unlock)机制。加锁过程涉及三次尝试:1)直接CAS获取;2)检查队列状态后获取;3)加入等待队列后再次尝试。通过Sync内部类和Node双向队列实现锁的获取与排队,使用CAS保证线程安全。解锁时会释放资源并唤醒后续等待线程。特别说明了非公平锁的实现细节,包括状态判断、重入处理、线程中断响应等核心机制,完整展现了ReentrantLock从获取到释放的全过程。

2026-02-05 13:11:53 614

原创 栈的使用-综合计算器实例

摘要:本文介绍了三种表达式形式(中缀、前缀、后缀)及其转换方法。重点讲解了后缀表达式(逆波兰表达式)的计算原理和Java实现,通过栈结构实现运算符优先级的处理。同时阐述了中缀转后缀的算法步骤:初始化两个栈,扫描表达式时根据运算符优先级和括号规则进行转换,最终输出后缀表达式。文中还指出Java中应使用Deque替代传统Stack类,并提供了完整的代码实现示例。

2025-12-31 15:06:58 492

原创 Java正则表达式的入门

本文摘要: Java正则表达式是处理文本匹配的强大工具,主要通过java.util.regex包中的Pattern和Matcher类实现。文章介绍了正则表达式的基础语法、Java中的基本用法(包括Pattern编译和Matcher匹配)、分组捕获、反向引用等核心概念。同时对比了贪婪匹配与非贪婪匹配的区别,并展示了零宽断言的应用场景。最后提供了实际开发中的常见应用示例(如表单验证、文本处理)以及性能优化建议,指出在简单字符串操作时应优先使用String原生方法而非正则表达式,以提高效率。全文系统性地介绍了Ja

2025-12-31 15:00:21 1020

原创 命令执行合集

在这里,它用于分隔不同的要匹配的字符或字符串,例如(\||&|;○ &:这是一个要匹配的字符,本身没有特殊的正则表达式含义(因为已经用\转义了可能与它冲突的情况),在这里就是要在目标字符串中匹配&这个字符。○ /:在这个表达式中,它是正则表达式的定界符。○ \/:因为/是正则表达式的定界符,所以如果要匹配/字符本身,需要用\转义,这里\/就是要匹配/这个字符。○ flag:同样是一个字符串字面量,要在目标字符串中匹配flag这个字符串。:和&类似,是一个要匹配的普通字符,在目标字符串中匹配;

2024-11-12 08:14:47 483

原创 web ctf日记

第一个if用来判断abc中是否不存在内容,第二个用来判断是否存在http,第三个用来判断是否存在hello123,以上都通过后,第四个检测以abc作为文件名的文件中是否不存在hello123,我们需要data协议来绕过第四个检查abc=data://text/plain;preg_replace ---用作替换,意思是在what_is_your_attitude_of_your_work中找到what_you_say_can_gain_mor_income中的参数,如果能找到,就将其替换为空(“”)

2024-09-23 13:02:30 261

空空如也

空空如也

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

TA关注的人

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