- 博客(13)
- 收藏
- 关注
原创 系统权限模型-----RBAC与ABAC
ABAC 全称 Attribute-Based Access Control,中文叫基于属性的访问控制,是一套动态、上下文感知的授权模型,在访问请求发生的瞬间,根据一组属性匹配预设策略,判断允许或者拒绝本次访问,NIST 标准定义的现代权限模型之一。它和 RBAC(基于角色)最大区别:RBAC 先给人分配角色,权限绑定角色;ABAC 不依赖固定角色,直接靠属性条件做判断,规则更灵活、粒度更细。
2026-11-07 22:46:14
325
原创 HMAC(Hash-based Message Authentication Code)
先对 body 做 SHA-256 再参与 HMAC,避免大报文直接拼接,同时保证内容完整性。
2026-11-07 22:43:05
312
原创 Agent系统意图识别模块
在简单场景下,比如场景单一,可调用工具数目少,意图识别模块的必要性较低,本身工具调用也是意图识别的一种。但是在复杂场景下,比如提供多种服务,模型可调用的工具达到上百种时,就很有必要做意图识别。我们为不同的服务做专项Agent,为其配备服务所需的工具集和system_prompt,书写更为详尽的提示词,以提升模型执行某个服务的能力,提高服务的质量,还不用为将上百个工具全部塞给同一个模型。**同样的 LLM,配上不同的工具集和 system prompt,在同一个任务上的表现差距极大。
2026-10-16 01:17:52
103
原创 LeetCode160. 相交链表 48. 旋转图像
本文记录了作者对两道LeetCode题目的解题思路和实现代码。第一题是相交链表问题(160题),通过让两个链表指针交替遍历对方链表,最终找到相交点或确认不相交,时间复杂度O(n),空间复杂度O(1)。第二题是旋转图像问题(48题),采用分层剥离、逐层旋转的策略,通过四边元素交换实现90度旋转,时间复杂度O(n²),空间复杂度O(1)。两题都采用了巧妙的指针操作和边界处理技巧,实现了高效的原地算法。
2026-06-06 08:30:00
540
18
原创 LeetCode54螺旋矩阵+538. 把二叉搜索树转换为累加树+73. 矩阵置零
这篇文章分享了三个算法题的解题思路和代码实现:1. 螺旋矩阵 - 通过定义四个边界按顺序遍历矩阵,时间复杂度O(mn);2. 二叉搜索树转累加树 - 采用右根左的逆中序遍历,利用累加和更新节点值;3. 矩阵置零 - 巧妙利用第一行和第一列存储置零信息,实现O(1)空间复杂度。每个问题都提供了清晰的解决思路、复杂度分析和完整Java代码实现,适合算法学习者参考。
2026-06-01 21:03:13
252
7
原创 LeetCode235.二叉搜索树的最近公共祖先
本文探讨了如何在二叉搜索树(BST)中寻找两个节点的最近公共祖先(LCA)。作者栗子君提出了基于节点值比较的解法:当两个目标节点都位于当前节点左侧/右侧时继续遍历;若当前节点是目标节点之一或两节点分别位于左右两侧时,当前节点即为LCA。文章给出了两种实现方式:递归的DFS方法和迭代的while循环方法,两者时间复杂度均为O(1)。这种解法利用了BST的有序特性,通过比较节点值来快速定位LCA的位置。
2026-05-29 19:59:57
373
11
原创 Cookie、Session与Token的区别
本文对后端开发中常见、常用,并且常问的Cookie、Session与Token做出讲解,如有错误欢迎指正,我是栗子君,一名Java后端开发学习者,希望大家多多关注多多支持。
2026-05-28 23:28:01
809
11
原创 Agent学习----Agent的三种设计范式
【摘要】Agent(智能体)是基于大语言模型(LLM)的高阶人工智能形态,具备感知、规划和执行能力,能主动调用工具完成任务。与仅能被动应答的LLM不同,Agent可实时获取外部信息并采取行动。其设计范式主要有三种:1)React范式通过"思考-行动-反馈"循环迭代推进任务,灵活性高;2)PlanandExecute范式先全局规划再严格执行,适合流程化任务;3)Reflection范式通过复盘实现自我优化。开发者可根据场景需求选择合适范式,结合SpringAI等框架快速构建智能体系统。
2026-05-17 21:26:56
437
8
原创 Java面试查漏补缺————equals方法详解
在我们使用Java编写程序时,需要重写equals方法我们往往采用自动生成或者使用Lombok的@Data注解来生成的方式来重写equals方法,因此我们对其了解可能并不是很深入,同时在前面分享HashSet的文章中,提出了为什么hashCode方法和equals方法必须一起重写的问题,对于这些问题我们在此进行探讨。我们都知道==比较的是地址,而equals方法比较的是内容,但是注意如果是我们自己定义的类,如果不重写equals方法它和==一样比较的是两个对象的地址。类原生方法,两个对象哈希值不同。
2026-04-23 22:13:30
472
3
原创 程序员鱼皮AI智能体项目学习体验分享|给Java学习者的真实参考
各位正在学习Java的小伙伴们,大家好~ 最近我刚完整做完程序员鱼皮的AI智能体项目,发现不少同学对这个项目很感兴趣,结合我自己的学习全过程和真实感受,今天就来跟大家好好分享一波,也给纠结要不要学这个项目的同学,提供一点实在的参考。先直接给大家上结论:对于AI零基础的同学,我非常推荐去学习这个项目——哪怕你传统技术栈还没学完,也完全可以上手。
2026-04-20 22:46:46
614
2
原创 你真的了解HashSet吗?
本文通过一道Java HashSet题目解析了集合类的重要特性。题目展示了向HashSet添加对象后修改其属性值导致的问题:由于修改了参与hashCode计算的属性,导致contains()和remove()操作失败,但原始对象仍存在于集合中(输出false和原始属性值)。文章指出HashSet底层依赖HashMap实现,通过将元素作为key来保证唯一性。重点强调:1)不要修改已存入HashSet对象的hashCode相关属性;2)若需修改应先删除再重新添加;3)HashSet查找元素依赖hashCode(
2026-04-18 22:36:11
200
2
原创 “反直觉”的ThreadLocal与面试知识详解
ThreadLocal数据实际存储在Thread对象内部的ThreadLocalMap中,以ThreadLocal实例为key。由于Entry的key是弱引用而value是强引用,在未调用remove()且线程复用(如线程池)时会导致内存泄漏:ThreadLocal被回收后,value因强引用无法释放。解决方案包括:1) 使用后必须调用remove()清理;2) 声明为static final避免key被回收;3) 但static方式仍需配合remove()使用。面试要点:key弱引用避免ThreadLoc
2026-04-16 22:08:35
594
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅