- 博客(1935)
- 资源 (21)
- 收藏
- 关注
原创 十载寒冰,难凉热血——2020CSDN年度博客之星Top10心路历程
十多年前,我刚开始学软件编程的时候,遇到问题就到处找答案,看别人的文章;再从文章中拷贝代码粘贴在自己的项目里看看是不是能解决问题。解决了最好,要是没有解决的话就继续再找。这种状态持续了很久:不停地四处找代码借以解决自己的项目需求和技术难点。在这个过程中自己的进步微乎其微,而且遇到以往类似的问题依然不清楚该怎么解决,于是只有再次去找代码,复制,粘贴……如此循环。在这样的循环下,开始有些麻木了,甚至心安理得地觉得:写代码原本就是这样的,大家也都是这样做的。直到有一天,我觉得这是在为自己开脱,其实是在心底隐蔽..
2021-02-04 22:49:46
18438
46
原创 J2SE常用开发文档
本文整理了Java开发文档资源:官方提供JDK各版本文档(含JDK17、JDK21),非官方提供JDK8、JDK11中文文档,并附有相应链接,方便开发者查阅。
2026-09-06 19:58:23
227
原创 MCP协议与SSE
本文介绍了SSE(服务器推送事件)技术及其在MCP协议中的演进过程。早期MCP采用HTTP POST和SSE两个独立端点分别处理双向通信,而改进后的Streamable HTTP方案将其整合为单一端点,支持POST请求和GET建立SSE流,允许服务端通过普通JSON或SSE流响应。虽然旧版HTTP+SSE传输方案被弃用,但SSE技术仍被保留用于流式消息传输。
2026-08-17 21:53:06
312
原创 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
44
原创 查看Windows设备的公网IP
本文介绍了通过命令行快速查询Windows设备公网IP的方法。当设备连接WIFI时,可在Dos中执行nslookup myip.opendns.com resolver1.opendns.com命令,通过OpenDNS服务器获取当前公网IP地址。文章包含操作示意图和简洁的步骤说明,适合需要查询公网IP的用户参考。该方法简单高效,无需第三方工具即可完成查询。
2026-08-15 20:37:36
75
原创 腾讯云服务器安装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
313
原创 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
418
原创 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
451
原创 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
537
原创 TypeScript泛型基础
本文介绍了TypeScript泛型的基础概念和应用场景。泛型通过类型参数(如T)实现类型复用,允许在函数、数组、接口等场景中动态指定类型,避免重复代码。文章对比了泛型与any的区别,强调泛型在保留类型关系上的优势,并展示了在函数、数组、Promise等常见场景中的泛型写法。同时指出泛型是Vue3组合式API的重要基础,建议初学者重点理解尖括号中的类型含义而非复杂技巧。文中包含多个代码示例,帮助读者直观理解泛型的基本语法和使用方法。
2026-08-08 15:17:45
297
原创 TypeScript类型断言
本文介绍了TypeScript中的类型断言机制,主要内容包括: 类型断言的作用是在开发者比TypeScript更清楚变量具体类型时,通过值 as 类型语法明确指定类型,如DOM操作中将元素断言为HTMLInputElement; 类型断言的典型应用场景包括DOM元素操作和事件对象处理,特别是在Vue3的表单事件中常见(event.target as HTMLInputElement).value写法; 强调类型断言不是类型转换,它仅影响类型检查而不会改变运行时值,实际类型转换需使用Number()等方法;
2026-08-08 15:14:28
404
原创 TypeScript中的unknown
本文介绍了TypeScript中的unknown类型,它用于表示暂时未知的数据类型。与any不同,unknown更安全,要求在使用前必须进行类型检查。文章详细讲解了unknown的特点、基本写法、使用限制以及如何通过类型判断安全操作unknown值。同时比较了unknown与any和联合类型的区别,并提供了实际应用场景建议。适合TypeScript初学者理解这一重要类型的使用方法和注意事项。
2026-08-08 15:11:14
202
原创 TypeScript中的any
TypeScript 中的 any 类型是一种特殊的类型,它表示变量可以接受任意类型的值。虽然 any 提供了灵活性,允许变量存储字符串、数字、布尔值、对象或数组等任何数据,但它会显著削弱 TypeScript 的类型检查能力,导致潜在的类型错误可能无法在开发阶段被发现,从而增加运行时错误的风险。 过度使用 any 还会影响编辑器的代码提示功能,使开发体验下降。在数组、对象和函数参数中使用 any 时需特别谨慎,因为这会降低类型安全性。相比之下,联合类型(如 string | number)能提供更明确的类
2026-08-08 15:07:05
251
原创 TypeScript接口
本文介绍了 TypeScript 中接口的基本概念和使用方法。接口用于描述对象结构,定义对象应包含的属性和类型,便于重复使用和类型检查。通过 interface 关键字定义接口,可以解决重复书写对象类型的问题。接口支持可选属性(加 ?),常用于数组、函数参数和返回值中描述对象结构。文中对比了接口与类型别名的异同,并提供了命名规范和示例代码。学习接口有助于更好地理解 Vue3 中的对象结构和类型检查机制。
2026-08-08 15:02:06
343
原创 TypeScript字面量类型
本文介绍了TypeScript中的字面量类型及其应用。字面量类型将具体值作为类型(如"success"),相比普通类型(如string)限制更严格,常与联合类型配合表示有限范围(如"loading"|"success"|"error")。文章阐述了如何用类型别名简化重复定义,并说明字面量类型适合处理状态、方向等固定取值场景,能有效避免非法值。还提到其在对象属性和函数参数中的用法,以及与const声明的关联,强调该特性在Vue3项目中对管理状态值的实用性。
2026-08-08 14:55:39
215
原创 TypeScript联合类型
TypeScript联合类型允许变量或参数取多种类型之一,使用竖线|连接类型(如string | number)。其核心作用是限定值的取值范围,常见于处理动态类型数据(如用户ID可能是数字或字符串)。使用时需注意: 变量声明时需明确联合类型范围 函数参数使用联合类型可增强灵活性 调用类型特定方法前需用typeof进行类型判断 可配合类型别名简化重复类型声明 支持固定值联合类型(如状态码)和联合类型数组 该特性在Vue3等框架中广泛应用,能有效提升代码的类型安全性。(149字)
2026-07-19 14:52:20
238
原创 TypeScript类型别名
类型别名通过type关键字为复杂类型创建可复用名称,特别适用于对象类型。基本语法为type 名称=类型,如type User={username:string;age:number}。它能简化对象数组(User[])、函数参数/返回值类型标注,并支持可选属性(address?:string)和联合类型(type Id=string|number)。命名建议采用大驼峰式(如StudentInfo),避免简写以提高可读性。类型别名解决了重复书写复杂类型的问
2026-07-19 14:48:51
238
原创 TypeScript可选属性
TypeScript可选属性通过在属性名后加?实现(如address?: string),允许对象省略非必需字段。可选属性存在时必须类型匹配,未定义时值为undefined。它适用于对象类型、类型别名、接口及对象数组,常用于描述API返回数据中的非必填字段。使用时需注意先判断属性是否存在(if(address))再操作,避免undefined错误。与函数可选参数不同,可选属性针对对象结构,而可选参数用于函数调用。该特性使类型系统更贴近实际业务场景需求。
2026-07-19 11:40:05
388
原创 TypeScript对象类型
本文介绍了TypeScript中对象类型的基本概念和使用方法。对象类型用于规范对象应包含的属性和各属性的数据类型,避免JavaScript中对象属性随意修改带来的潜在问题。文章通过示例说明对象类型的声明方式(如{username: string; age: number}),强调属性名与类型的严格对应关系,并指出常见错误场景(如属性名不一致、类型不匹配等)。此外还提及可选属性(加?标记)和对象数组的应用场景,为后续学习Vue3等框架中的数据管理打下基础。全文配有代码示例,建议通过TypeScript官方工具
2026-07-19 11:35:13
360
原创 TypeScript数组类型
本文介绍了TypeScript数组类型的基本概念和使用方法。文章首先指出JavaScript数组的灵活性可能导致数据混乱问题,而TypeScript通过数组类型(如string[]、number[]、boolean[])可以严格限定数组元素类型,避免错误数据。作者详细讲解了三种基础数组类型的应用场景及注意事项,并对比了类型[]与Array<类型>两种写法的等价性。文章还强调了数组类型对代码提示的优化作用,并通过示例代码展示了类型检查如何防止非匹配类型数据的插入。最后指出掌握数组类型是学习Vue3等框架中列表
2026-07-05 21:33:00
382
原创 TypeScript可选参数
本文介绍了 TypeScript 中的可选参数功能。可选参数通过在参数名后加 ? 表示(如 name?: string),允许调用函数时省略该参数。未传入时参数值为 undefined,使用时需先判断是否存在。可选参数必须放在必需参数之后,且传入时仍需符合类型约束。文中通过示例对比了必需参数与可选参数的区别,并指出可选参数与默认参数、可选属性的不同应用场景。最后强调在 Vue3 等框架中,可选参数能灵活处理非必传数据,提升代码适应性。
2026-07-05 21:27:17
220
原创 TypeScript函数参数类型与返回值类型
本文介绍了TypeScript中函数参数类型与返回值类型的基本用法。主要内容包括: 函数参数类型标注的语法(如name: string)及其作用,通过类型限制减少误用; 多个参数的类型标注方法及参数顺序的重要性; 返回值类型的标注方式(如: number)和类型校验规则; 无返回值函数使用void类型标注的特殊情况。文章通过对比JavaScript的灵活性与TypeScript的类型安全性,强调类型标注在函数定义中的价值,并建议初学者显式声明类型以增强代码可读性。
2026-07-03 00:45:00
280
原创 TypeScript类型推断
TypeScript类型推断摘要 TypeScript具备自动类型推断能力,即使没有显式类型标注,也能根据变量初始值、数组元素、对象属性或函数返回值推断数据类型。核心特点包括: 变量推断:声明时赋值的变量会根据初始值自动推断类型(字符串→string,数字→number等) const特殊推断:const常量会被推断为具体的字面量类型而非常规类型 数组/对象推断:数组根据元素类型推断,混合类型会生成联合类型;对象根据属性初始化推断结构 函数推断:返回值类型可自动推断,但参数建议显式标注 最佳实践:简单变量可
2026-07-03 00:15:00
416
原创 TypeScript变量的类型标注
TypeScript变量的类型标注是基础语法,用于声明变量时明确数据类型。与JavaScript不同,TypeScript通过类型标注限制变量类型,可在编码阶段发现类型错误。类型标注在编译后会消失,浏览器最终执行的是转换后的JavaScript代码。初学者可使用TypeScript Playground测试代码。基础类型包括string、number和boolean,标注格式为let 变量名:类型=值。TypeScript支持类型推断,声明时有初始值可省略标注。类型标注能减少运行时错误,是学习Ty
2026-07-02 01:00:00
318
原创 TypeScript概述
TypeScript是JavaScript的超集,通过添加静态类型检查增强代码可靠性。它允许为变量、函数参数等标注类型(如let age: number),能在编码阶段发现类型错误。TypeScript代码需编译为JavaScript才能运行,浏览器不直接支持。Vue3对TypeScript有良好支持,许多示例使用<script lang="ts">语法。学习Vue3前只需掌握基础类型标注,不必深入复杂特性,重点关注变量、函数、接口等基本类型写法即可。这种类型系统特别适合大型项目,帮助开发者在早期发现潜在错
2026-07-02 00:30:00
239
原创 大模型核心基础知识(30)—模型验证中的评估指标
本文探讨了模型验证的重要性及常用方法。模型验证是判断模型泛化能力的关键环节,通过验证集评估模型在新数据上的表现。文章介绍了分类任务中的准确率、精确率、召回率、F1分数等指标,以及混淆矩阵的分析方法;同时阐述了回归任务的均方误差和平均绝对误差评估方式。文中还总结了过拟合、欠拟合等常见问题,并强调验证集应具有代表性。最后指出模型验证需要结合业务需求进行综合评估,为模型调优和部署提供依据。验证过程应关注整体指标与样本级分析,确保模型满足实际应用要求。
2026-07-01 01:00:00
712
原创 大模型核心基础知识(29)—模型训练中的损失函数与优化算法
本文系统阐述了模型训练的核心要素与流程。主要内容包括:1)模型训练是参数迭代优化过程,通过损失函数、优化算法和训练参数协同作用;2)损失函数(如均方误差、交叉熵)为训练提供优化方向,需根据任务类型选择;3)优化算法(如梯度下降、Adam)负责参数更新,影响收敛速度和稳定性;4)学习率、批量大小和训练轮数等超参数需合理配置;5)实践中需解决欠拟合、过拟合和训练不稳定等问题。文章强调模型训练是系统工程,需要各要素合理配合才能获得良好泛化能力。
2026-07-01 00:30:00
491
原创 大模型核心基础知识(28)—模型初始化方法
本文探讨了神经网络模型初始化的重要性及方法。作者指出,合理的初始化是训练成功的基础,能影响梯度传播、收敛速度和训练稳定性。文章分析了初始化不当导致的梯度消失、梯度爆炸等问题,重点介绍Xavier和He两种主流初始化方法:前者适用于Sigmoid/Tanh激活函数,后者更适合ReLU系列激活函数的深层网络。文章强调初始化方法需与网络结构、激活函数相匹配,并与其他训练技术配合使用。理解这些原则有助于开发人员构建更稳定的训练流程,为模型优化奠定基础。
2026-06-30 01:00:00
417
原创 大模型核心基础知识(27)—模型设计
本文探讨了大模型构建中模型设计的关键环节。作者指出模型设计需基于任务分析(分类、回归、生成或检索)和数据特征(结构化/非结构化、规模等)选择合适的算法与架构,强调模型复杂度应与数据条件匹配,并需考虑解释性和部署约束。常见问题包括目标不清、复杂度失配、忽视部署条件等。合理的模型设计能有效衔接数据准备与后续训练部署,是确保模型性能与应用稳定性的关键。全文由谷哥的小弟原创,博客地址:http://blog.csdn.net/lfdfhl。
2026-06-30 00:15:00
266
原创 大模型核心基础知识(26)—训练集、验证集与测试集的划分
本文系统阐述了机器学习中训练集、验证集和测试集的核心概念与划分原则。文章首先明确三类数据集的不同职责:训练集用于模型学习,验证集用于调参和模型选择,测试集用于最终评估。接着提出数据划分的四项基本原则:保持分布一致性、避免数据泄漏、根据任务特点选择划分方式以及确保测试集接近真实场景。针对常见问题如数据重复、分布不一致和过度依赖验证集等现象给出了具体解决方案。最后强调合理数据划分对模型评估可信度的重要意义,指出这是发现过拟合问题和保证模型质量的关键环节。全文为机器学习实践中的数据划分工作提供了系统指导。
2026-06-29 01:45:00
347
原创 大模型核心基础知识(25)—数据标注流程
本文探讨了数据标注在大模型训练中的关键作用与实施方法。文章指出,数据标注通过建立输入数据与目标结果的对应关系,决定了模型学习的方向和能力。常见标注类型包括文本分类、命名实体识别、问答对及指令微调等。完整的标注流程包含规范制定、人工标注、多轮审核和质量控制等环节,其质量受标注规范统一性、人员专业度和审核机制影响。为确保质量,需采用交叉标注、抽样检查、AI辅助等技术手段。高质量标注是模型训练的基础,需要建立标准化流程和持续优化机制,这对构建可靠的大模型至关重要。
2026-06-29 00:30:00
486
原创 大模型核心基础知识(24)—大模型训练中的数据预处理
本文介绍了数据预处理在模型训练中的关键作用。主要内容包括:数据预处理通过格式转换、文本规范化、结构标准化等步骤,将清洗后的数据转换为模型可处理的统一格式;详细阐述了数据格式转换、文本规范化处理、数据结构标准化、分词与词元处理、长文本切分等核心预处理环节;强调自动化处理对大规模数据的重要性;指出规范的预处理流程能提高训练效率,保证模型学习的稳定性和一致性,是连接数据清洗和模型训练的必要桥梁。
2026-06-28 09:37:30
340
原创 大模型核心基础知识(23)—大模型训练中的数据清洗
本文探讨了大模型训练中数据清洗的关键作用与实施方法。作者指出原始数据普遍存在重复、噪声、错误和低质量内容等问题,需要通过去重、过滤、修正等手段提升数据质量。文章详细介绍了完全重复检测、相似度计算等去重方法,以及基于来源、内容、语言的过滤策略,并分析了数据规模庞大、标准不统一等实践挑战。随着技术发展,数据清洗正从错误删除向高质量数据构建转变,成为连接数据采集与模型训练的核心环节,直接影响模型的学习效果和泛化能力。合理的数据清洗流程对提升大模型训练效率和质量具有重要意义。
2026-06-28 09:34:07
676
原创 大模型核心基础知识(22)—大模型训练中的数据采集方式
本文探讨了大模型训练中数据采集的重要性及实践要点。数据作为模型训练基础,其规模、质量和来源直接影响模型性能。主要数据源包括公开互联网数据、专业数据集、行业资料和企业内部数据,采集方式涵盖公开获取、网络爬取、内部整理和人工构建。文章强调数据质量需关注真实性、代表性、重复率和时效性,同时必须遵守知识产权、隐私保护和数据安全等合规要求。发展趋势显示,高质量数据和规范化治理日益重要,新型数据构建方式不断涌现。数据采集作为模型训练的基础环节,其规范性和可靠性对整个模型生命周期具有决定性影响。
2026-06-27 01:00:00
916
原创 大模型核心基础知识(21)—Transformer应用场景
本文探讨了Transformer模型在人工智能各领域的广泛应用及其深远影响。文章指出,Transformer最初在自然语言处理领域取得突破,随后迅速扩展至大语言模型、计算机视觉、语音处理、多模态学习等领域,成为现代人工智能的基础架构。作者分析了Transformer在机器翻译、文本分类、图像处理、语音识别等具体任务中的优势,并强调其并行计算能力、上下文建模能力和统一处理多模态数据的特点。文章最后指出,Transformer不仅推动了AI技术的发展方向转变,更建立了高效、可扩展的统一建模方式,对智能办公、医疗
2026-06-27 00:30:00
514
原创 解决MySQL安装报错Initializing database(may take a long time)
在Windows系统安装MySQL 8.X时,卡在Initializing database步骤。通过查看日志文件StarL-configurator.log发现,安装程序依次完成了控制器加载、服务配置(端口3306、服务名MySQL84)、用户账户设置及防火墙规则添加等步骤,最终在07:33:05完成my.ini配置保存并添加防火墙规则,但初始化数据库阶段仍无进展。日志未显示具体错误,需进一步排查数据库初始化环节的问题。
2026-06-26 16:04:11
325
原创 大模型核心基础知识(20)—Transformer架构的组成
本文深入解析了Transformer模型的整体架构及信息流动过程。Transformer由编码器和解码器组成,编码器通过多层自注意力机制和前馈神经网络提取输入语义,解码器结合编码输出和已生成内容逐步预测结果。关键设计包括位置编码保留语序信息、残差连接改善梯度传播、层归一化稳定训练。这种模块化架构支持大规模训练,为BERT、GPT等大模型奠定基础,其编码-解码协作机制有效完成从文本理解到内容生成的完整流程。理解Transformer对掌握现代大语言模型原理具有重要意义。
2026-06-26 15:22:04
481
原创 大模型核心基础知识(19)—自注意力机制工作原理
本文介绍了自注意力机制(Self-Attention)在Transformer模型及大语言模型中的核心作用。自注意力机制突破了传统循环神经网络的顺序处理限制,通过动态计算注意力权重,使模型能够同时关注输入序列中的所有词元,并根据关联程度分配不同关注权重。这种机制具备长距离依赖建模、并行计算和动态关注能力,显著提升了模型的上下文理解效率。作为Transformer的关键组件,自注意力机制为编码器、解码器提供了强大的语义建模基础,并成为BERT、GPT等大语言模型的重要技术支撑,推动了人工智能处理长文本和多模态
2026-06-26 15:15:10
271
原创 getPath和 getAbsolutePath的区别
本文介绍了Java中File类的getPath()和getAbsolutePath()方法的区别。getPath()返回创建File对象时传入的原始路径(相对或绝对),而getAbsolutePath()总是返回完整绝对路径,若为相对路径则基于程序运行目录进行转换。示例代码展示了两种方法的不同输出结果,并指出相对路径转换时会参考user.dir系统属性。
2026-06-21 18:41:01
372
原创 内存硬件信息查询命令
本文介绍了在Windows命令提示符下使用WMIC命令查询主板内存信息的实用技巧。通过4个核心命令,可获取主板最大内存支持容量(16GB)、物理插槽数量(2个)、当前安装内存参数(8GB SK海力士1600MHz)以及内存条详细信息(SO-DIMM类型、64位宽、A通道0槽位)。这些命令能帮助用户快速了解硬件内存配置,为升级内存提供准确数据支持。
2026-06-21 16:51:45
407
DependencyInjection
2023-09-05
仿QQ获取设备中APK并分享
2016-04-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅