- 博客(1947)
- 资源 (21)
- 收藏
- 关注
原创 十载寒冰,难凉热血——2020CSDN年度博客之星Top10心路历程
十多年前,我刚开始学软件编程的时候,遇到问题就到处找答案,看别人的文章;再从文章中拷贝代码粘贴在自己的项目里看看是不是能解决问题。解决了最好,要是没有解决的话就继续再找。这种状态持续了很久:不停地四处找代码借以解决自己的项目需求和技术难点。在这个过程中自己的进步微乎其微,而且遇到以往类似的问题依然不清楚该怎么解决,于是只有再次去找代码,复制,粘贴……如此循环。在这样的循环下,开始有些麻木了,甚至心安理得地觉得:写代码原本就是这样的,大家也都是这样做的。直到有一天,我觉得这是在为自己开脱,其实是在心底隐蔽..
2021-02-04 22:49:46
18467
46
原创 MySQL数据库项目开发实战02—宠护诊所业务系统
本文介绍宠物诊所管理系统PetCare的数据模型与表结构,涵盖主人、宠物、兽医、预约、诊疗记录、药品及处方明细7张表。系统支持预约就诊、诊疗管理、用药记录与收费统计,数据设计符合MySQL 8.x规范,强调业务逻辑完整性与历史数据一致性,适用于日常运营与数据分析。
2026-10-22 20:48:55
27
原创 MySQL数据库项目开发实战01-电商业务平台
本文介绍Mini Mall简化网上商城的数据模型,涵盖用户、档案、分类、商品、订单及明细六张表。系统支持用户注册与信息管理,商品按层级分类,订单记录包含下单时的商品价格与数量,历史数据不随商品变动而改变。适用于MySQL 8.x环境,覆盖增删改查及统计分析等核心操作,体现真实电商场景中的数据结构设计与业务逻辑。
2026-10-22 20:45:02
153
原创 Linux模拟运行机制
本文介绍 Ubuntu 中 apt-get -s 模拟运行机制,用于预览软件包操作影响而无需实际修改系统。通过 -s 或其等价选项(如 --dry-run、--no-act),可安全查看安装、升级、移除等操作的依赖关系与影响。建议在模拟前执行 sudo apt update 以确保索引最新。典型场景包括预览升级、清理孤立依赖及过滤关键操作。模拟结果不保证与实际执行完全一致,但为高风险操作提供重要前置校验手段。
2026-10-18 17:21:07
231
原创 Visual Studio安装图文教程
本文介绍了微软Visual Studio集成开发环境的概述、下载与安装流程。Visual Studio是面向Windows平台的专业IDE,支持C#、C++、Python等多种语言,具备智能补全、调试、版本控制及AI辅助编程等功能。文章详细演示了从官网下载Community免费版,选择“使用C++的桌面开发”工作负载,安装至完成的全过程,并展示了启动界面及初始设置。适合开发者快速上手Windows生态下的工程化开发。
2026-10-18 17:11:36
384
原创 网络连接测试命令Test-NetConnection
本文介绍使用PowerShell的Test-NetConnection命令测试TCP端口连通性,通过实例验证了从Windows主机到Linux服务器的MySQL(3306)、Redis(6379)、RabbitMQ(5672)及管理界面(15672)端口的连接状态。所有测试均返回TcpTestSucceeded : True,表明网络连通性正常,适用于排查服务访问问题。
2026-10-03 20:59:35
513
原创 Linux服务器网络服务与端口
客户端运行在服务器之外,并且必须直接使用ECS公网IP访问服务器中的服务时,需要为相应端口配置公网访问条件。例如,Windows中的Navicat直接连接ECS中的MySQL时需要3306端口具备公网访问条件,Redis客户端直接访问Redis时需要6379端口具备公网访问条件,远程应用直接访问RabbitMQ时需要5672端口具备公网访问条件。
2026-10-03 20:24:02
857
原创 基于PowerShell的Chrome无痕访问
本文介绍一个 PowerShell 脚本,用于在隔离、无干扰的纯净环境中启动 Chrome 浏览器,实现对指定 Web 服务(如 RabbitMQ 管理后台)的无痕访问测试。通过强制关闭现有 Chrome 进程、使用独立用户数据目录、禁用代理与扩展,确保测试结果不受缓存、Cookie、扩展等影响。仅需替换目标 URL 即可适配不同测试场景,适用于网络连通性、管理后台访问等需求。执行时需注意数据丢失风险及安全访问限制。
2026-10-03 10:34:40
528
原创 MySQL创建远程登录账号
本文介绍了在Windows中通过Navicat连接Linux服务器MySQL的配置步骤。首先以root用户登录MySQL,使用CREATE USER 'devuser'@'%' IDENTIFIED BY '123456'创建远程账号,再用GRANT ALL PRIVILEGES ON *.* TO 'devuser'@'%'授予全部权限,最后通过查询mysql.user表验证账号信息。确保3306端口开放后,即可在Navicat中使用该账号远程连接,实现安全高效的数据库管理。
2026-10-02 20:54:06
429
1
原创 正向代理与Nginx反向代理
在 Java Web 开发中,Nginx 经常被描述为“反向代理服务器”。要理解反向代理,首先需要理解什么是代理,以及正向代理与反向代理的区别。代理本质上是一个中间服务:它位于通信双方之间,代替其中一方发送或接收请求。根据代理所代表的对象不同,可以分为正向代理和反向代理。
2026-10-02 20:19:50
639
原创 CentOS Stream浴火重生
CentOS Linux于2024年6月30日终止支持,其精神延续为CentOS Stream——RHEL的上游开发平台。它采用持续交付模式,主版本内保持API/ABI稳定,生命周期约五年,与RHEL同步。不同于传统下游重建模式,CentOS Stream是RHEL开发的源头,适合有工程能力参与反馈的团队。虽非官方推荐用于生产环境,但Meta等超大规模企业已实际使用。未来将支持RISC-V架构,生态定位清晰:创新在Fedora,工程化在Stream,商业发布在RHEL。
2026-10-01 19:44:17
568
原创 CentOS寿终正寝
CentOS曾是基于RHEL源码重建的免费企业级Linux发行版,以二进制兼容、长期稳定支持著称。2014年并入Red Hat后,其定位转向CentOS Stream——作为RHEL的上游开发分支,采用持续交付模式,缩短生命周期,引发社区争议。随着CentOS 7与8相继停服,用户面临迁移选择:可转向RHEL订阅,或采用AlmaLinux、Rocky Linux等兼容发行版,亦有国产系统如Anolis OS、TencentOS Server应运而生。这一转型折射出开源生态中社区与商业利益的深层张力。
2026-10-01 19:40:19
452
原创 微服务开发版本适配说明
Spring Cloud Alibaba 2025.x包含2025.1.x和2025.0.x两个主要版本线,分别适配不同版本的Spring Boot和Spring Cloud。此外,不同版本的Spring Cloud Alibaba还对应特定版本的Sentinel、Nacos、RocketMQ、SchedulerX和Seata。
2026-09-14 21:26:00
426
1
原创 J2SE常用开发文档
本文整理了Java开发文档资源:官方提供JDK各版本文档(含JDK17、JDK21),非官方提供JDK8、JDK11中文文档,并附有相应链接,方便开发者查阅。
2026-09-06 19:58:23
261
原创 MCP协议与SSE
本文介绍了SSE(服务器推送事件)技术及其在MCP协议中的演进过程。早期MCP采用HTTP POST和SSE两个独立端点分别处理双向通信,而改进后的Streamable HTTP方案将其整合为单一端点,支持POST请求和GET建立SSE流,允许服务端通过普通JSON或SSE流响应。虽然旧版HTTP+SSE传输方案被弃用,但SSE技术仍被保留用于流式消息传输。
2026-08-17 21:53:06
359
原创 Ollama部署bespoke-minicheck
本文介绍了在Ollama平台上部署bespoke-minicheck模型的具体步骤。首先通过ollama pull bespoke-minicheck:7b命令拉取约4.7G大小的模型(耗时约30分钟),然后使用ollama run bespoke-minicheck:7b运行模型。最后通过测试样例验证了模型部署成功,展示了对"地球是太阳系第三颗行星"这一陈述的事实核查功能。整个部署过程配有完整命令行截图,操作清晰易懂。(149字)
2026-08-17 00:15:00
74
原创 查看Windows设备的公网IP
本文介绍了通过命令行快速查询Windows设备公网IP的方法。当设备连接WIFI时,可在Dos中执行nslookup myip.opendns.com resolver1.opendns.com命令,通过OpenDNS服务器获取当前公网IP地址。文章包含操作示意图和简洁的步骤说明,适合需要查询公网IP的用户参考。该方法简单高效,无需第三方工具即可完成查询。
2026-08-15 20:37:36
111
原创 腾讯云服务器安装Redis Stack图文教程
本文介绍了在腾讯云服务器OpenCloudOS 9.4上使用Docker部署Redis Stack的完整流程。主要内容包括:环境准备(确认系统版本、Docker安装及资源情况)、下载Redis Stack镜像、创建并启动容器(配置端口映射、数据卷及密码认证),以及通过redis-cli验证服务可用性。文章特别强调了检查6379端口占用情况的重要性,并展示了Redis Stack默认加载的扩展模块(如ReJSON、Timeseries等)。整个部署过程通过命令行操作完成,适合开发者快速搭建Redis Stac
2026-08-15 17:26:16
353
原创 Claude Code安装与配置图文详解教程
本文介绍了Windows Terminal和Claude Code的安装配置流程:首先从GitHub下载安装Windows Terminal,然后通过npm设置镜像源并安装Claude Code。接着指导用户在.claude/settings.json中配置DeepSeek API参数,包括模型选择和API Key设置。最后演示了Claude Code的基本使用方法:在终端输入指令后,通过交互式界面提问并获取AI回答。整个过程包含详细的操作图示和关键命令说明,帮助用户完成从安装到使用的完整配置。
2026-08-10 00:45:00
574
原创 IDEA中Qoder插件和Claude Code插件的区别
本文对比了IntelliJ IDEA中Qoder插件与Claude Code插件的区别。Qoder插件可直接在IDEA中使用,作为完整的AI开发入口;而Claude Code需通过"CLI+插件"组合方式运行,其中CLI是核心功能载体,插件仅作为IDE与CLI间的桥梁。两者的主要差异在于产品入口和架构设计:Qoder以插件为独立入口,Claude Code则以CLI为基础架构。Java开发者可根据习惯选择,Qoder直接安装插件即可,Claude Code需要同时配置CLI和插件。
2026-08-10 00:15:00
564
原创 TypeScript在Vue3中的常见写法
本文概述了TypeScript在Vue3中的常见写法特点,重点解析了Vue3代码中混合的TypeScript语法。文章指出初学者容易混淆Vue3 API与TypeScript类型标注,如ref<string>中的泛型语法。主要内容包括:1) ref<T>泛型写法表示响应式数据的具体类型;2) 对象类型通过接口或类型别名定义后再用于泛型;3) 数组类型如Product[]的应用;4) 字面量联合类型限制状态值范围;5) 可选属性处理可能不完整的接口数据;6) 事件处理函数的类型标注;7) 类型断言在表单处理中
2026-08-08 15:20:26
563
原创 TypeScript泛型基础
本文介绍了TypeScript泛型的基础概念和应用场景。泛型通过类型参数(如T)实现类型复用,允许在函数、数组、接口等场景中动态指定类型,避免重复代码。文章对比了泛型与any的区别,强调泛型在保留类型关系上的优势,并展示了在函数、数组、Promise等常见场景中的泛型写法。同时指出泛型是Vue3组合式API的重要基础,建议初学者重点理解尖括号中的类型含义而非复杂技巧。文中包含多个代码示例,帮助读者直观理解泛型的基本语法和使用方法。
2026-08-08 15:17:45
322
原创 TypeScript类型断言
本文介绍了TypeScript中的类型断言机制,主要内容包括: 类型断言的作用是在开发者比TypeScript更清楚变量具体类型时,通过值 as 类型语法明确指定类型,如DOM操作中将元素断言为HTMLInputElement; 类型断言的典型应用场景包括DOM元素操作和事件对象处理,特别是在Vue3的表单事件中常见(event.target as HTMLInputElement).value写法; 强调类型断言不是类型转换,它仅影响类型检查而不会改变运行时值,实际类型转换需使用Number()等方法;
2026-08-08 15:14:28
421
原创 TypeScript中的unknown
本文介绍了TypeScript中的unknown类型,它用于表示暂时未知的数据类型。与any不同,unknown更安全,要求在使用前必须进行类型检查。文章详细讲解了unknown的特点、基本写法、使用限制以及如何通过类型判断安全操作unknown值。同时比较了unknown与any和联合类型的区别,并提供了实际应用场景建议。适合TypeScript初学者理解这一重要类型的使用方法和注意事项。
2026-08-08 15:11:14
225
原创 TypeScript中的any
TypeScript 中的 any 类型是一种特殊的类型,它表示变量可以接受任意类型的值。虽然 any 提供了灵活性,允许变量存储字符串、数字、布尔值、对象或数组等任何数据,但它会显著削弱 TypeScript 的类型检查能力,导致潜在的类型错误可能无法在开发阶段被发现,从而增加运行时错误的风险。 过度使用 any 还会影响编辑器的代码提示功能,使开发体验下降。在数组、对象和函数参数中使用 any 时需特别谨慎,因为这会降低类型安全性。相比之下,联合类型(如 string | number)能提供更明确的类
2026-08-08 15:07:05
271
原创 TypeScript接口
本文介绍了 TypeScript 中接口的基本概念和使用方法。接口用于描述对象结构,定义对象应包含的属性和类型,便于重复使用和类型检查。通过 interface 关键字定义接口,可以解决重复书写对象类型的问题。接口支持可选属性(加 ?),常用于数组、函数参数和返回值中描述对象结构。文中对比了接口与类型别名的异同,并提供了命名规范和示例代码。学习接口有助于更好地理解 Vue3 中的对象结构和类型检查机制。
2026-08-08 15:02:06
355
原创 TypeScript字面量类型
本文介绍了TypeScript中的字面量类型及其应用。字面量类型将具体值作为类型(如"success"),相比普通类型(如string)限制更严格,常与联合类型配合表示有限范围(如"loading"|"success"|"error")。文章阐述了如何用类型别名简化重复定义,并说明字面量类型适合处理状态、方向等固定取值场景,能有效避免非法值。还提到其在对象属性和函数参数中的用法,以及与const声明的关联,强调该特性在Vue3项目中对管理状态值的实用性。
2026-08-08 14:55:39
275
原创 TypeScript联合类型
TypeScript联合类型允许变量或参数取多种类型之一,使用竖线|连接类型(如string | number)。其核心作用是限定值的取值范围,常见于处理动态类型数据(如用户ID可能是数字或字符串)。使用时需注意: 变量声明时需明确联合类型范围 函数参数使用联合类型可增强灵活性 调用类型特定方法前需用typeof进行类型判断 可配合类型别名简化重复类型声明 支持固定值联合类型(如状态码)和联合类型数组 该特性在Vue3等框架中广泛应用,能有效提升代码的类型安全性。(149字)
2026-07-19 14:52:20
254
原创 TypeScript类型别名
类型别名通过type关键字为复杂类型创建可复用名称,特别适用于对象类型。基本语法为type 名称=类型,如type User={username:string;age:number}。它能简化对象数组(User[])、函数参数/返回值类型标注,并支持可选属性(address?:string)和联合类型(type Id=string|number)。命名建议采用大驼峰式(如StudentInfo),避免简写以提高可读性。类型别名解决了重复书写复杂类型的问
2026-07-19 14:48:51
259
原创 TypeScript可选属性
TypeScript可选属性通过在属性名后加?实现(如address?: string),允许对象省略非必需字段。可选属性存在时必须类型匹配,未定义时值为undefined。它适用于对象类型、类型别名、接口及对象数组,常用于描述API返回数据中的非必填字段。使用时需注意先判断属性是否存在(if(address))再操作,避免undefined错误。与函数可选参数不同,可选属性针对对象结构,而可选参数用于函数调用。该特性使类型系统更贴近实际业务场景需求。
2026-07-19 11:40:05
403
原创 TypeScript对象类型
本文介绍了TypeScript中对象类型的基本概念和使用方法。对象类型用于规范对象应包含的属性和各属性的数据类型,避免JavaScript中对象属性随意修改带来的潜在问题。文章通过示例说明对象类型的声明方式(如{username: string; age: number}),强调属性名与类型的严格对应关系,并指出常见错误场景(如属性名不一致、类型不匹配等)。此外还提及可选属性(加?标记)和对象数组的应用场景,为后续学习Vue3等框架中的数据管理打下基础。全文配有代码示例,建议通过TypeScript官方工具
2026-07-19 11:35:13
374
原创 TypeScript数组类型
本文介绍了TypeScript数组类型的基本概念和使用方法。文章首先指出JavaScript数组的灵活性可能导致数据混乱问题,而TypeScript通过数组类型(如string[]、number[]、boolean[])可以严格限定数组元素类型,避免错误数据。作者详细讲解了三种基础数组类型的应用场景及注意事项,并对比了类型[]与Array<类型>两种写法的等价性。文章还强调了数组类型对代码提示的优化作用,并通过示例代码展示了类型检查如何防止非匹配类型数据的插入。最后指出掌握数组类型是学习Vue3等框架中列表
2026-07-05 21:33:00
391
原创 TypeScript可选参数
本文介绍了 TypeScript 中的可选参数功能。可选参数通过在参数名后加 ? 表示(如 name?: string),允许调用函数时省略该参数。未传入时参数值为 undefined,使用时需先判断是否存在。可选参数必须放在必需参数之后,且传入时仍需符合类型约束。文中通过示例对比了必需参数与可选参数的区别,并指出可选参数与默认参数、可选属性的不同应用场景。最后强调在 Vue3 等框架中,可选参数能灵活处理非必传数据,提升代码适应性。
2026-07-05 21:27:17
234
原创 TypeScript函数参数类型与返回值类型
本文介绍了TypeScript中函数参数类型与返回值类型的基本用法。主要内容包括: 函数参数类型标注的语法(如name: string)及其作用,通过类型限制减少误用; 多个参数的类型标注方法及参数顺序的重要性; 返回值类型的标注方式(如: number)和类型校验规则; 无返回值函数使用void类型标注的特殊情况。文章通过对比JavaScript的灵活性与TypeScript的类型安全性,强调类型标注在函数定义中的价值,并建议初学者显式声明类型以增强代码可读性。
2026-07-03 00:45:00
287
原创 TypeScript类型推断
TypeScript类型推断摘要 TypeScript具备自动类型推断能力,即使没有显式类型标注,也能根据变量初始值、数组元素、对象属性或函数返回值推断数据类型。核心特点包括: 变量推断:声明时赋值的变量会根据初始值自动推断类型(字符串→string,数字→number等) const特殊推断:const常量会被推断为具体的字面量类型而非常规类型 数组/对象推断:数组根据元素类型推断,混合类型会生成联合类型;对象根据属性初始化推断结构 函数推断:返回值类型可自动推断,但参数建议显式标注 最佳实践:简单变量可
2026-07-03 00:15:00
432
原创 TypeScript变量的类型标注
TypeScript变量的类型标注是基础语法,用于声明变量时明确数据类型。与JavaScript不同,TypeScript通过类型标注限制变量类型,可在编码阶段发现类型错误。类型标注在编译后会消失,浏览器最终执行的是转换后的JavaScript代码。初学者可使用TypeScript Playground测试代码。基础类型包括string、number和boolean,标注格式为let 变量名:类型=值。TypeScript支持类型推断,声明时有初始值可省略标注。类型标注能减少运行时错误,是学习Ty
2026-07-02 01:00:00
324
原创 TypeScript概述
TypeScript是JavaScript的超集,通过添加静态类型检查增强代码可靠性。它允许为变量、函数参数等标注类型(如let age: number),能在编码阶段发现类型错误。TypeScript代码需编译为JavaScript才能运行,浏览器不直接支持。Vue3对TypeScript有良好支持,许多示例使用<script lang="ts">语法。学习Vue3前只需掌握基础类型标注,不必深入复杂特性,重点关注变量、函数、接口等基本类型写法即可。这种类型系统特别适合大型项目,帮助开发者在早期发现潜在错
2026-07-02 00:30:00
253
原创 大模型核心基础知识(30)—模型验证中的评估指标
本文探讨了模型验证的重要性及常用方法。模型验证是判断模型泛化能力的关键环节,通过验证集评估模型在新数据上的表现。文章介绍了分类任务中的准确率、精确率、召回率、F1分数等指标,以及混淆矩阵的分析方法;同时阐述了回归任务的均方误差和平均绝对误差评估方式。文中还总结了过拟合、欠拟合等常见问题,并强调验证集应具有代表性。最后指出模型验证需要结合业务需求进行综合评估,为模型调优和部署提供依据。验证过程应关注整体指标与样本级分析,确保模型满足实际应用要求。
2026-07-01 01:00:00
739
原创 大模型核心基础知识(29)—模型训练中的损失函数与优化算法
本文系统阐述了模型训练的核心要素与流程。主要内容包括:1)模型训练是参数迭代优化过程,通过损失函数、优化算法和训练参数协同作用;2)损失函数(如均方误差、交叉熵)为训练提供优化方向,需根据任务类型选择;3)优化算法(如梯度下降、Adam)负责参数更新,影响收敛速度和稳定性;4)学习率、批量大小和训练轮数等超参数需合理配置;5)实践中需解决欠拟合、过拟合和训练不稳定等问题。文章强调模型训练是系统工程,需要各要素合理配合才能获得良好泛化能力。
2026-07-01 00:30:00
516
原创 大模型核心基础知识(28)—模型初始化方法
本文探讨了神经网络模型初始化的重要性及方法。作者指出,合理的初始化是训练成功的基础,能影响梯度传播、收敛速度和训练稳定性。文章分析了初始化不当导致的梯度消失、梯度爆炸等问题,重点介绍Xavier和He两种主流初始化方法:前者适用于Sigmoid/Tanh激活函数,后者更适合ReLU系列激活函数的深层网络。文章强调初始化方法需与网络结构、激活函数相匹配,并与其他训练技术配合使用。理解这些原则有助于开发人员构建更稳定的训练流程,为模型优化奠定基础。
2026-06-30 01:00:00
436
DependencyInjection
2023-09-05
仿QQ获取设备中APK并分享
2016-04-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅