自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【个人学习】总章

硬件 -> 指令 -> 操作系统 -> 运行时 -> 编程语言 -> 框架/数据库 -> 业务系统网络:负责通信软件工程:负责把代码真正做成可维护、可协作、可上线的工程如果你把这张图真正建立起来,后面学 Java、数据库、操作系统、网络,就不会再觉得它们是互相分裂的知识点了。

2026-04-08 17:02:54 359

原创 docker安装&&卸载

一般选这个,根据自己电脑选根据docker下载文档下载路径可以改变创建自己想要的docker安装位置的文件夹右键,以管理员身份运行复制位置到目标位置并且输入指令稍等片刻安装完毕,桌面上已经有了随便保存个位置验证。

2026-04-26 19:07:28 104

原创 【个人学习||agent底层】01创建基础的发送和模型建立联系

agent的模型一般大都由服务商提供,而agent功能是让本机和服务商的模型建立联系,因此第一步是简单的建立联系本文以deepseek为例也就是说我们发送的http应该和他要求的一样。

2026-04-19 17:37:57 65

原创 FastGPT本地部署及其使用

搜索并下载ubuntun。

2026-04-17 13:57:44 183

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

数据库系统的价值,在于把数据从“散乱文件”提升为“可抽象、可共享、可控制、可恢复”的系统对象。数据库的设计目标之一,就是让变化不要牵一发而动全身。学生一张表课程一张表成绩一张表为什么是这三张?字段怎么定?多对多怎么办?哪些字段能做主键?哪些关系需要单独建表?这些问题如果不先建模,就容易凭感觉拍脑袋。现实里有哪些核心对象它们之间是什么关系哪些信息属于对象自身,哪些属于对象之间的联系数据库设计不是先写 SQL,而是先做抽象。

2026-04-14 16:55:06 503

原创 【个人学习||spring】

先用类比理解。你不自己招人组装团队,而是把岗位要求交给工厂。工厂负责招人、分配工位、建立协作关系。你只负责告诉工厂:“订单服务需要库存服务、支付服务。概念直觉理解技术定义Spring企业开发工具箱一套用于构建 Java 企业应用的基础框架体系IoC不自己管对象对象控制权从业务代码转交给容器DI自动配齐依赖容器在创建对象时把依赖注入进去Bean被容器接管的对象由 Spring 管理生命周期和依赖关系的对象容器总调度中心通常指Spring MVCWeb 请求调度层。

2026-04-13 11:11:53 387

原创 【个人学习||操作系统】

操作系统到底是什么?用户程序为什么不能直接操作硬件?CPU 如何从用户程序切换到操作系统内核?如果把计算机看成一台机器,操作系统就是“管理机器的人”和“给用户使用机器的接口”。本模块是理解操作系统的入口。操作系统通过内核态、系统调用和中断机制接管硬件,并为用户程序提供安全接口。进程是资源分配的基本单位,线程是 CPU 调度的基本单位;调度题要画时间轴,先求完成时间,再求周转时间和等待时间。哪些代码必须互斥?哪些动作有先后条件?然后分别设置互斥信号量和同步信号量。

2026-04-10 11:16:26 280

原创 【个人学习||vue】

一开始背 API,不理解“状态驱动视图”。一开始啃源码,却没有真实业务问题作为抓手。先直觉认知 -> 再掌握常用 API -> 再理解机制 -> 再进入工程与源码。概念直觉类比技术定义声明式 UI告诉厨师“我要什么菜”,而不是自己切菜下锅描述数据和视图关系,而不是手动操作 DOM 过程组件乐高积木可复用、可组合的 UI 与逻辑单元响应式温度计会跟温度自动变化数据变化后,依赖它的视图或逻辑会自动重新执行模板页面草图用接近 HTML 的语法描述视图结构状态当前系统的事实。

2026-04-10 11:14:56 286

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

Spring Boot 的本质:它不是“新的 Java 语言”,也不是“替代 Spring 的东西”,而是一个帮助你更快搭建、运行、配置、交付 Spring 应用的工程化框架。 你可以把它理解成:Spring 提供能力,Spring Boot 把这些能力按企业开发常见场景“预组装”好了。这门学科是干什么的 用更少配置,快速开发 Web 接口、后台服务、管理系统、微服务、定时任务、数据服务。它解决什么问题 解决传统 Spring 项目里“配置繁琐、依赖组合复杂、启动麻烦、环境切换乱、部署成本高”的

2026-04-09 20:46:55 672

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

Redis 是一个开源的、基于内存的、支持多种数据结构的键值数据库,提供高性能读写能力,并支持持久化、复制、过期、高可用等能力。这一阶段要做的是把前面所有内容连成一张网,而不是散成很多点。Redis 知识主干复盘。学习顺序复盘。工程方法论沉淀。下一步深入方向规划。Redis 定位。Redis 与 MySQL / Memcached 对比。Redis 为什么快。Redis 是一个以内存为核心、以数据结构为能力、以高性能读写和状态协同为价值的系统。

2026-04-07 10:44:41 281

原创 【个人学习||ollama】安装和使用

选择想要的模型,本文2026.4.4,发布gemma4模型为例。虽然下面有教程但是实测run下载会出现后半部分严重限速。运行:(注意D:\ollama改为你的文件夹)输入ollama list得到当前全部的模型。输入ollama pull <模型名字>现在安装了ollama,还没有模型。将模型下载文件夹放到自己象想要的盘。将安装包放入你要新建的文件夹。虽然这里有部分模型,但是不全。新建你需要的地方的文件夹。进入下载好的文件夹,启动。输入ollama即可使用。打开ollama官网。这是这个模型可用版本。

2026-04-04 23:39:39 414

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

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

2026-04-03 20:22:25 716

原创 【个人学习||ts】

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

2026-04-03 19:53:18 397

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

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

2026-04-01 13:56:03 548

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

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

2026-03-31 12:49:53 346

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

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

2026-03-31 10:36:15 392

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

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

2026-03-30 12:51:26 478

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

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

2026-03-30 12:35:20 328

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

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

2026-03-29 18:12:20 902

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

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

2026-03-25 17:57:27 485

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

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

2026-03-23 21:47:31 211

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

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

2026-03-23 14:37:57 199

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

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

2026-03-21 13:02:41 399

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

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

2026-03-20 14:10:22 359

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

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

2026-03-20 13:08:19 352

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

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

2026-03-18 10:14:51 402

原创 【个人学习】Git 基础

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

2026-03-16 20:43:51 381

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

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

2026-03-16 13:29:38 292

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

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

2026-03-15 16:14:55 236

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

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

2026-03-15 15:59:18 429

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

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

2026-03-13 15:18:39 379

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

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

2026-03-13 14:56:56 524

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

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

2026-03-12 18:45:56 367

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

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

2026-03-10 12:22:31 435

原创 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 1014 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 1074

原创 <java>感知机

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

2025-01-20 16:54:38 1187

原创 线程池内容

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 275

原创 线程安全问题

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

2024-12-19 11:22:28 648

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

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

2024-11-23 15:45:32 1134

空空如也

空空如也

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

TA关注的人

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