自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【个人学习||spring】spring ai

Spring AI 是一个面向 AI 应用开发的 Spring 生态项目,提供统一 API 和 Spring Boot 自动配置,帮助开发者以统一方式接入聊天模型、嵌入模型、向量存储、工具调用、RAG 和 MCP 等能力。你只拿到了“结果文本”。检索到了哪些文档某个 advisor 是否改写了 prompt上下文里放了什么中间状态这就是Advisor 执行上下文放在一起返回。这对调试复杂 AI 系统非常关键。) {}

2026-04-03 20:22:25 255

原创 【个人学习||ts】

TypeScript:JavaScript 的超集,增加了静态类型系统静态类型检查:在代码运行前,根据类型规则分析代码是否可能出错编译:把.ts转成.js类型注解:手动声明变量、参数、返回值的类型类型推断:TS 根据上下文自动推导出类型。

2026-04-03 19:53:18 244

原创 【个人学习||spring boot】

下一阶段会进入工程实践,重点讲:**日志、Profile、多环境配置、测试、打包部署、监控、Actuator、项目结构和开发规范**。这一阶段会把你的知识真正变成排障能力。2. 能正确使用 `@GetMapping`、`@PostMapping`、`@PathVariable`、`@RequestParam`、`@RequestBody`。`必须吃透`:IoC/DI、Bean、自动装配、Starter、配置文件、Web 开发、参数绑定、异常处理、数据库访问、事务、日志、Profile、多环境、启动流程。

2026-04-03 19:38:03 277

原创 【个人学习||数据库】mysql

概念直觉理解技术定义Database一组业务数据的集合按逻辑组织的一组表、视图、索引等对象DBMS管理数据的系统数据库管理系统,如 MySQL、PostgreSQLMySQL一种具体 DBMS 产品关系型数据库管理系统Table一张业务表格按行列组织的数据结构Row一条记录表中的一行数据Column一个字段表中某一类属性记录身份证唯一标识一行数据的列或列组合Schema结构定义表、字段、约束、索引等结构设计Instance正在运行的数据库服务。

2026-04-01 13:56:03 385

原创 【个人学习||spring boot】

概念直觉理解技术定义IoC控制权交出去对象的创建与管理交给 Spring 容器,而不是业务代码自己控制DI需要什么就给什么容器在创建对象时,把它依赖的其他对象注入进去Bean被托管的对象由 Spring 容器创建、管理、装配、销毁的对象容器本体Spring 的核心上下文,负责 Bean 的注册、实例化、依赖注入、生命周期管理组件扫描自动找组件Spring 按包路径扫描带注解的类并注册成 Bean配置类Bean 生产工厂使用@Bean显式定义 BeanStarter。

2026-04-01 10:07:24 363

原创 【个人学习||算法】图论

先做一个合理假设:你目前是图论入门到中等水平,已经会数组、队列、递归,但还没有形成“看到题就知道怎么建图、怎么选算法”的体系。(Edges,边)组成的结构。岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。所以,图论不是一个算法,而是一类“关系建模 + 算法选择”的题。这次的主题是“图论入门总框架”。(水)组成的的二维网格,请你计算网格中岛屿的数量。(Vertices,也叫顶点)以及连接这些节点的。此外,你可以假设该网格的四条边均被水包围。

2026-03-31 12:49:53 303

原创 【个人学习||mybatis】mybatis

MyBatis 是一个支持自定义 SQL、存储过程以及高级映射的持久层框架。它通过 XML 或注解来配置 SQL 与 Java 方法/对象之间的映射关系。

2026-03-31 10:36:15 315

原创 【个人学习||ai提示词工程】01Prompt Engineering

提示词工程是优化与大模型沟通的方法,核心在于将模糊需求转化为明确指令。其本质是结构化表达,通过角色设定、任务说明、上下文、约束条件和输出格式等要素,让模型更稳定地输出预期结果。提示词工程不是收集"神奇话术",而是解决实际问题:减少跑题、稳定输出、便于解析和排错。常见误区包括过度追求高级语气、忽略输出格式、不做任务拆解等。关键在于先清晰定义任务,再考虑表达方式。随着模型能力提升,结构化思维和清晰表达能力将愈发重要。

2026-03-30 12:51:26 368

原创 【个人学习||算法】多维动态规划

本文介绍了动态规划的核心思想及其在多维场景下的应用。动态规划通过保存历史状态来推导当前结果,其关键在于状态定义、转移方程和边界条件。文章以三个经典问题为例:1) 不同路径问题,使用二维DP数组统计路径数;2) 最小路径和问题,通过比较相邻格子值求解最优解;3) 最长回文子串问题,利用二维布尔数组记录子串状态。三个案例均展示了如何将问题分解为子问题,并通过填表法逐步求解,体现了动态规划"以空间换时间"的典型特征。

2026-03-30 12:35:20 290

原创 【个人学习||算法】贪心算法

贪心的本体是**“局部最优推导全局最优”。它假设世界(或问题空间)是可切分的、独立且具有单向因果律**的。面前有10 堆麦粒,但有的麦粒大,有的麦粒小,有的还掺了沙子。你手里有一个只能装一勺的袋子,而且你只能从 10 堆里选 3 堆各舀一勺。你的目标是:让这三勺麦粒总重量最重。你会怎么做?肯定每一步都选那堆看起来最饱满、最沉的麦粒舀当你舀第二勺的时候,第一勺的重量,会影响你判断“现在哪一堆最沉”吗?不会。我只要看剩下的堆里哪堆最沉就行了。这就是贪心。现在的选择(选最沉的),不依赖于过去。

2026-03-29 18:12:20 444

原创 【个人学习||算法】动态规划

动态规划(Dynamic Programming)并不是一种具体的算法,而是一种解题思想。它通过把原问题分解为相对简单的子问题,并保存子问题的结果,从而避免重复计算。DP 解题三部曲:状态定义:dp[i] 到底代表什么?状态转移方程:dp[i] 怎么由前面的 dp 值推导出来?初始化与边界:从哪里开始“递推”?你要数清面前这一大堆散落的麦粒。正常直接数,后果就是有可能会忘记当前数到第几个了,然后大概率需要从头开始数了。实际上生活中很多人选择分开数。

2026-03-25 17:57:27 415

原创 【个人学习||HashMap】02源码版

学习01基础思想后来学习源代码。

2026-03-23 21:47:31 186

原创 【个人学习||HashMap】01原理版

不要“遍历找”,而是直接“算出它该在哪”,这样只需要算一下就能确定他的位置,时间复杂度只有O(1)。因为这样 n - 1 才会是形如 1111...,低位全是 1,分布更均匀,也方便扩容迁移。所以 HashMap 不是“直接存 key”,而是先“算 hash,再定桶”。HashMap 的本质是“通过 key 算位置”,尽量把查找从遍历变成定位。容量默认 16,负载因子默认 0.75,所以阈值常见是 12。链表够长才考虑树化,但数组太小时通常优先扩容,不急着树化。这也是“容量用 2 的幂”的另一个关键收益。

2026-03-23 14:37:57 171

原创 【个人学习||JVM】03垃圾回收(GC)

先标记活对象再清除垃圾问题:有碎片。

2026-03-21 13:02:41 360

原创 【个人学习||JVM】02JVM的内存区域&&类加载&&对象创建过程

一个类加载器收到加载请求后,不会先自己干,而是先往上问父加载器。父加载器能加载,就让父加载器加载;一个 Java 类,从磁盘上的 .class 文件,变成 JVM 里可以使用的类,到底经历了什么过程。01已经学了“元空间放类信息”,也就是工厂建好了,需要开始运行,但是我怎么知道需要怎么工作?从01可以知道new Product() 创建出来的,就是一个 对象,是在堆里面的。一开始很多只是“名字”,解析阶段会把这些名字变成 JVM 真正能定位到的目标。类不是 JVM 自己凭空拿进来的,要有人去“搬”。

2026-03-20 14:10:22 317

原创 【个人学习||JVM】01JVM五大核心模块解析

可以把 JVM 常见地拆成 5 类核心区域或模块来理解。

2026-03-20 13:08:19 323

原创 【个人学习】 Java 并发编程1

多线程可能早就听过很多次了,但是具体多线程是什么,干什么的,需要详细了解一下。我们刚开始写的普通的程序是单线程,例如:第一行:移动小球 A第二行:播放背景音乐第三行:移动小球 B在单线程环境下,如果“移动小球 A”是一个需要运行 10 秒的死循环,那么背景音乐永远不会响,小球 B 也会纹丝不动。这叫阻塞。他是怎么做到这三件事情同时运行的呢?这就是多线程的作用。

2026-03-18 10:14:51 366

原创 【个人学习】Git 基础

Git 的命令很多,掌握 add、commit、push、pull 就能应付大部分的场景和享受它的功能了。

2026-03-16 20:43:51 350

原创 【个人学习||Electron桌宠项目实战】4为桌宠添加操作功能

做到这里时,我已经把桌宠窗口、模型渲染和鼠标跟随都跑起来了。接下来很自然就要添加功能了,毕竟桌宠就一个图片和加载模型太low了,甚至都没有退出按键。这个窗口没有标题栏,也没有传统工具栏,那用户怎么操作它?比如:- 切换模型- 退出程序未来还需要增加新功能。这些操作总不能都靠快捷键。所以我很快就决定,把这类入口统一放进右键菜单。

2026-03-16 13:29:38 237

原创 【个人学习||Electron桌宠项目实战】3自带眼动局限性,全局鼠标跟随

当窗口和模型都能稳定显示以后,我下一步最想做的就是“让角色活起来”。桌宠这种东西,静态放在那里是远远不够的。它必须对用户有一点回应感,哪怕只是眼睛跟着鼠标动、头轻轻转一下,整个感觉都会完全不一样。所以我一开始先尝试了模型自带的交互能力,但很快就遇到了问题。

2026-03-15 16:14:55 171

原创 【个人经验】一次 Spring Boot 停不掉的排查:为什么 IDEA 点了 Stop,线程还活着?

最近我踩了一个坑:前端关了,Spring Boot 也点了停止,结果 Java 进程还活着,端口还占着,第二次启动还会出现各种“串环境”“连错服务”“数据跑偏”的现象。尤其是项目迁移的时候,你自己 new Thread() 出来的线程、自己建的线程池、自己维护的后台 worker,如果不手动关,Spring 不会替你收尾。所以“点了 Stop 还没退干净”,不一定是 Spring Boot 不行,而是你的线程根本不在 Spring 的托管范围里。很多程序“跑起来没问题”,但真正难的是“停下来还干净”。

2026-03-15 15:59:18 315

原创 【个人学习||Electron桌宠项目实战】2把桌宠窗口和Live2D 渲染接上

主进程骨架搭完以后,我没有马上去写复杂交互,而是先给自己定了一个最小目标:先做出一个真的像桌宠的窗口,再把模型画进去。因为如果窗口本身还是普通软件窗口,后面再怎么调模型,视觉感觉都不对。桌宠最先要成立的,其实是“它像一个悬浮在桌面的角色”,而不是“它能播放模型”。

2026-03-13 15:18:39 326

原创 【个人学习||Electron桌宠项目实战】1先把技术栈和 main 进程看懂

这次我想做的不是一个普通网页,而是一个能挂在桌面上的 live2d角色。它要能透明悬浮、能放模型。除此之外,我还是为了接入ai对话功能做铺垫并且兼具一定的实用性,后面还能继续加聊天、右键菜单、文件窗口这些功能。由于是第一个正式的除html外的前端项目,我对于前端语言不是很了解。对于如何写一个独立的桌面窗口不是很清楚。经过查了部分资料后,我发现这种项目的重点不是了解 Vue , React等页面开发工具。因为我最先要解决的不是页面长什么样,而是怎么创建真正的桌面窗口。

2026-03-13 14:56:56 363

原创 【学习笔记】从“学会面向对象”到“开始理解面向接口”

面向对象让我学会写类,面向接口让我开始学会做边界。以前我总觉得“架构设计”离初学者很远。类太大了方法太乱了依赖太多了改一个地方太痛了而“面向接口编程”的价值,恰恰就在这里。它不是为了炫技,也不是为了把代码写复杂,而是为了让项目在变大之后,依然还能改、还能扩、还能看得懂。对我来说,这算是从“会写代码”走向“开始理解代码结构”的一个小转折。

2026-03-12 18:45:56 351

原创 【开源实战】用 Java 21 + Swing 打造 Scrcpy 可视化工具

我第一次比较完整地走通了一个项目从开发到公开的过程。写出能跑的代码,只是第一步,整理成别人能理解、能使用、能继续维护的项目,才是真正的软件工程。

2026-03-10 12:22:31 392

原创 Claude Code for VS Code第三方claude接入

如果发现出现claude无法输出可能是版本问题,可以回退Visual Studio Code版本解决。填入key和url(注意name和value匹配本图上面key,下面url)此时直接打开他会让你登录,由于我们没有账号因此无法登录,我们需要绕过登录。此时重启Visual Studio Code发现跳过登录程序、选择c盘->user->自己的用户->.claude。保存后即可连接到claude code。新建文件名字为config.json。

2026-03-09 18:55:54 447 3

原创 Hadoop安装下载

编辑文件“/usr/local/software/hadoop-3.3.5/etc/hadoop/core-site.xml”,将如下内容嵌入此文件里最后两行的configuration标签之间(注意修改master1名称为自己的名称)编辑文件“/usr/local/software/hadoop-3.3.5/etc/hadoop/hadoop-env.sh”,在文件末尾加上jdk的安装路径,注意jdk的安装路径可根据实际情况更改。(进入任意目录,查寻HDFS上文件是否存在,若存在,即成功)

2025-11-13 17:43:50 1026

原创 <java>感知机

在了解感知机之前,应该先理解感知机的定义。感知机是,属于监督学习算法,其输入为实例的特征向量,输出为实例的类别。

2025-01-20 16:54:38 1145

原创 线程池内容

4.当放入任务线程数量>①+⑤(核心线程还在工作+阻塞队列满了(5+10)),开启临时线程(最多开启5个(②-①(10-5))当放入数量<=①+⑤(即15个时,若多出的临时线程不执行,则可以保持③④(即10分钟)5.当工作线程将任务线程处理后,当前任务线程总数<=15,开始计时③④(10分钟)2.最大线程数 10(包含核心线程数5+临时线程数5)(最多可开的线程数)1.当创建线程池时,线程池创建5条工作线程为 ①(这五条不关闭)2.当放入任务线程时,放入⑤(即阻塞队列,可放10条)4 是③的单位 分钟。

2024-12-28 15:32:58 248

原创 线程安全问题

由于线程的共享内存性和独立执行性,产生了线程安全,多个人操控同一个东西如果没有规定就会导致混乱。线程安全指的是一个程序或者代码模块在多个线程并发执行时,能够正确地完成其设计功能,不会引发意外的行为或错误。线程安全的关键在于防止数据竞争和死锁。数据竞争:当两个或多个线程同时访问共享数据,并且至少有一个线程对数据进行写操作时,就会发生数据竞争。例如,工厂有一个共享的仓库,里面有一个库存计数器。工人A和工人B同时从仓库里取货,每次取货后都需要更新库存计数器。

2024-12-19 11:22:28 624

原创 进程/线程 并行/并发

1.进程/线程2.并行/并发3.启动线程的三种方式。

2024-11-23 15:45:32 1097

原创 关于Java 类与对象

仅供自己学习、复习需要,有任何问题可在评论区提出。1.Java 类和对象2.对象创建3.构造方法4.方法重载5.对象调用6.类的继承6.1类的继承方式6.2继承的方法重载6.3继承的转型1./*Java 类和对象*/类是一个抽象的概念,拿生物学中举例子,类就如同物种。一个物种(类)定义了其成员的一般特征和行为,而每个个体(对象)则是这些特征和行为的具。在 Java 中,类是对象的蓝图。一个类定义了对象的和。即它的和它能对象是类的实例,通过类创建。

2024-11-12 10:58:15 653

空空如也

空空如也

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

TA关注的人

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