自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 项目中 AI 使用经验:从“能用”到“好用”的实践总结

在项目中使用 AI,核心不是追求“用了多少”,而是建立一套可控、可验证、可复用明确 AI 的定位是效率工具,不是决策主体;用清晰的上下文和具体约束提升输出质量;小步迭代,每一步都验证;把个人经验沉淀为团队规范,用工具和流程兜底。做到这些,AI 才能真正从“能用”变成“好用”,成为项目交付中稳定的一环。

2026-10-24 20:26:04 284

原创 代码中的 AI 辅助工具:如何帮你实现自动化

AI 辅助工具在代码场景中的自动化价值,不在于替你写几行代码,而在于把重复、模式化、易遗漏的工作交给机器执行:脚手架生成、批量改造、自动审查、测试补齐、文档同步,这些环节串起来,才构成完整的自动化闭环。建议从一个小场景切入,比如先做 PR 自动审查或单测生成,跑通“调用、校验、回滚、观测”四个环节,再逐步扩展到更多流程。工具会持续演进,但工程化的思路是稳定的。

2026-10-24 20:24:20 310

原创 IT疑难杂症诊疗室:从故障排查到根因治理的技术文章大纲

回顾全文方法论:以现象为起点,以证据为依据,以根因为目标,以治理为终点。给出给读者的一句话行动建议。

2026-10-24 20:22:34 173

原创 vue2和vue3的区别

Vue2与Vue3核心差异对比:Vue3采用Proxy实现响应式系统,性能更优且支持更多数据类型;引入组合式API替代选项式API,使代码组织更灵活;生命周期钩子调整,setup()替代beforeCreate/created;新增Fragment、Teleport等特性;全面支持TypeScript并优化打包体积。Vue3在性能、开发体验和可维护性上显著提升,已成为新项目首选,但Vue2仍适合需兼容IE11的场景。两者核心思想一致,开发者可根据项目需求选择版本。

2026-05-15 16:39:08 225

原创 mabatis-plus 和mabatis 的区别

MyBatis-Plus是MyBatis的增强工具,在简化开发方面优势明显。核心区别在于:MyBatis需要手动编写SQL,而MyBatis-Plus内置通用CRUD方法、条件构造器、分页插件等功能,大幅减少代码量。MyBatis-Plus提供自动代码生成、主键策略、逻辑删除等实用功能,但仍可与原生MyBatis共存,适合简单CRUD多的新项目,而复杂SQL场景可混合使用。一句话概括:MyBatis提供基础工具,MyBatis-Plus则封装了常用功能,两者互补共存。

2026-05-15 16:35:50 256

原创 Java 高频面试题汇总

作为资深 Java 工程师,整理了面试中90% 会被问到的核心题目,分模块呈现,轻松应对面试~😎

2026-05-13 14:28:55 245

原创 Java中的层级调用关系,以及对应的代码实现

(Controller→Service→Dao)及其实现方式。通过用户管理系统示例,展示了各层职责:Entity层 - 数据实体Dao层 - 数据库操作(使用MyBatis注解)Service层 - 业务逻辑处理(包含事务管理)Controller层 - 接收请求和返回响应关键点:使用Spring依赖注入管理对象通过@Transactional确保事务每层保持单一职责原则异常处理贯穿各层

2026-05-13 14:11:01 377

原创 jar包和war包的区别

Jar包与War包核心区别:Jar包是通用Java程序包(含SpringBoot项目),内置Tomcat可直接运行;War包是传统Web项目包,需外置Tomcat部署。Jar包结构自由,War包必须包含WEB-INF/web.xml目录。SpringBoot默认使用Jar包,而传统SSM/JSP项目使用War包。当前开发以Jar包为主(90%场景),War包已基本淘汰。关键记忆点:Jar自带容器、结构自由;War依赖外置Tomcat、有固定目录结构。

2026-05-12 09:14:01 243

原创 HTTP 面试极简背诵版

HTTP是超文本传输协议,基于TCP的应用层协议,采用请求-响应模式,具有无状态特性。由请求行、请求头和请求体组成,常用GET查询和POST提交数据。状态码如200(成功)、404(未找到)等标识请求结果。HTTPS在HTTP基础上增加SSL/TLS加密,使用443端口,安全性更高但性能稍低。HTTP默认80端口,传输明文数据,而HTTPS需要证书认证,实现加密通信。

2026-05-12 09:10:03 64

原创 MySQL的下载

MySQL社区版下载安装指南:访问官网下载页面,点击"Download Now"按钮,选择适合的Windows版本。在安装过程中勾选所需组件选项,完成下载后运行安装程序即可。该流程简洁明了,适合Windows用户快速获取MySQL数据库服务。

2026-05-12 09:09:39 41

原创 Tomcat 核心配置 + 常用修改点

本文总结了Tomcat核心配置文件的修改要点:1)主要配置文件位置(server.xml/web.xml/context.xml/tomcat-users.xml);2)常用修改项包括端口号、UTF-8编码、线程池参数、管理账号配置;3)SpringBoot内嵌Tomcat的配置方式;4)修改后必须重启生效。重点解决端口冲突、中文乱码、性能调优等实际问题,适用于开发和部署场景。

2026-05-12 09:09:17 58

原创 单点登录 SSO 面试极简背诵版

单点登录(SSO)是一种认证机制,允许用户只需登录一次即可访问多个相互独立的业务系统。其核心原理是通过统一认证中心生成全局令牌(Token),存储在浏览器Cookie或通过JWT传递。当用户访问其他系统时,系统只需校验令牌合法性而无需重复登录。常见实现方式包括基于Cookie+重定向的传统方式,以及适用于前后端分离的JWT/OAuth2.0方案。面试时可简述为:多系统共用一套登录机制,通过统一认证中心下发令牌实现一次登录全网免登。

2026-05-11 13:57:15 53

原创 MySQL 优化 面试极简完整版(直接背)

本文总结了MySQL数据库优化的五个关键层面:1)SQL与索引优化,包括避免全表扫描、合理使用索引;2)表结构优化,如选择合适字段类型;3)架构优化,采用缓存、读写分离、分库分表等方案;4)冷热数据分离,使用专用分析库;5)参数配置与硬件升级。通过从SQL编写、索引设计、表结构、系统架构到硬件配置的多层次优化,可全面提升MySQL数据库性能。优化策略强调从查询语句到系统架构的整体性改进,同时针对不同场景采用差异化解决方案。

2026-05-11 13:53:55 372

原创 数据库亿级数据优化 面试极简背诵版

本文总结了MySQL数据库性能优化的关键措施:1)SQL与索引优化,避免低效查询;2)表结构优化,合理设计字段;3)引入缓存减少数据库访问;4)读写分离分担压力;5)分库分表处理大数据量;6)冷热数据分离;7)业务解耦,使用专业系统处理特定场景;8)参数调优与硬件升级。通过多层次的优化策略,可显著提升数据库性能,应对高并发和大数据量挑战。

2026-05-11 13:50:05 407

原创 数据库如果有过亿的量,应该怎么优化?

本文系统介绍了亿级数据优化的完整方案,从SQL优化到架构升级的递进式解决方案。核心原则是单表超500万即需优化,亿级数据需综合运用索引优化、分库分表、读写分离、数据归档和缓存策略。具体包括:SQL/索引优化(避免全表扫描、深度分页)、读写分离分摊查询压力、水平分表拆分亿级数据、冷热数据归档保持主表轻量、Redis缓存拦截热点请求,以及将复杂查询迁移至ES/ClickHouse等专业系统。最后强调硬件优化和配置调优,形成从代码到架构的全方位优化体系。

2026-05-11 13:48:40 515

原创 商品订单,如果两个人同时下单,但是库存只有一个,如何处理?

文章摘要: 商品订单并发超卖的核心问题是多人同时查询库存导致超额扣减。解决方案包括:1)悲观锁(串行执行,性能差);2)乐观锁(通过版本号实现CAS,最常用);3)Redis预扣库存(高并发推荐,异步落库);4)分布式锁(Redisson实现,中高并发适用)。最优方案是:常规场景用数据库乐观锁,超高并发秒杀采用Redis预扣库存+分布式锁,核心在于保证查询与扣减操作的原子性。

2026-05-11 13:45:33 507

原创 《Windows 配置 Java 环境变量踩坑全记录:图形界面失效,最终用 CMD 命令解决》

【摘要】本文记录了Windows 10配置Java环境变量时遇到的典型问题:图形界面配置无效、路径拼写错误、Path变量含隐藏字符等。核心发现是Windows图形界面环境变量配置存在缓存问题,最终通过CMD命令setx JAVA_HOME "路径" /M和setx Path "新路径;%Path%" /M直接修改注册表成功解决。相比图形界面,命令行方式更可靠:避免隐藏字符、直接写入注册表、无需重启立即生效。建议遇到类似问题时优先使用setx命令,特别是Windows

2026-05-06 16:56:43 373

原创 AWS入门必看:5个核心服务,搞懂你就会用80%的AWS

本文介绍了AWS五大核心服务,帮助初学者快速上手:1)EC2(云虚拟机)用于运行应用;2)S3(对象存储)提供无限网络存储;3)RDS(托管数据库)自动管理关系型数据库;4)Lambda(无服务器计算)按需运行代码;5)VPC(私有网络)隔离云资源。这些服务可组合使用,如用EC2运行后端、S3存储前端、RDS管理数据、VPC保障安全,满足80%的云需求。掌握这五项服务即可入门AWS,其他服务可在需要时逐步学习。

2026-05-06 16:17:41 605

原创 AWS成本优化:核心服务优化技巧与最佳实践

本文基于AWS官方Well-Architected成本优化框架,系统讲解EC2、S3、RDS、网络等核心服务的计费原理与优化技巧。内容包括:EC2购买模式选择与Graviton迁移、S3存储分层与生命周期管理、数据库与网络成本优化、AWS官方成本管理工具使用,以及自动化成本治理最佳实践。按照本文方法优化,大多数场景可在保证性能的前提下,降低40%-70%的AWS开销,适合所有使用AWS的开发者和运维人员参考。

2026-05-06 16:10:04 366

原创 springboot中的怎么用JUnit进行测试的?

在 Spring Boot 中使用 JUnit 进行单元测试非常简单,官方已帮你集成好 JUnit5(Spring Boot 2.x 默认),只需 3 步即可跑起来。下面给出一份「最小可运行」示例,并补充常见场景(Mock、Web、事务)的写法,复制即可用。照着以上模板,10 分钟即可把 Spring Boot 项目的单元测试跑起来;运行:IDEA 在方法左侧点击 ▶ 即可,首次会自动编译并启动容器,完成后看到绿色条即通过。1.引入依赖(已自带,确认即可)对应包下生成模板,再补。即可看到行/分支覆盖率。

2025-10-24 17:55:59 584 1

原创 【走进Golang】测试SDK环境搭建成功,配置path环境变量

摘要:本文介绍了验证和配置SDK环境的步骤:首先通过win+R打开命令提示符,然后进入系统环境变量设置(此电脑→高级系统设置→环境变量),在Path中添加SDK目录路径并保存。配置完成后需重启命令台进行验证。整个过程涉及3次确认操作,确保环境变量正确设置。(97字)

2025-06-13 14:21:46 304

原创 搭建第一个 Vite 项目

使用npm create vite@latest可快速创建基于Vite的项目,支持多种框架模板(如React、Vue、Svelte等)。创建项目后,通过npm install安装依赖,运行npm run dev启动本地开发服务器(默认端口5173)。示例创建React+TS项目:npm create vite@latest react-ts-pro --template react-ts,成功运行后将显示Vite+React欢迎页面。该方法提供了一种高效的前端项目初始化方式。

2025-06-11 14:34:27 329

原创 React Developer Tools 插件

React Developer Tools 插件

2025-05-19 10:43:44 198

原创 电脑自带画图工具,提取颜色

在画图工具中,使用颜色选取器可以轻松标记图片中的颜色。首先,打开画图工具并选择颜色选取器功能,然后点击图片中需要标记的颜色区域。接着,点击“编辑颜色”选项,系统会显示该颜色对应的色号。通过这一简单操作,用户可以快速获取并记录图片中的特定颜色信息,方便后续的设计或编辑工作。整个过程直观便捷,适合各种设计需求。

2025-05-15 17:23:47 1105

原创 idea一键对齐快捷键

在 IntelliJ IDEA 中,一键对齐代码的快捷键是 Ctrl+Alt+L。这个快捷键可以用于 Java、XML 以及其他文本文件,用于自动对齐代码,提高代码的可读性。

2024-12-31 16:03:00 1352

原创 React

React的核心思想是组件化,允许开发者将用户界面分解成独立的、可复用的组件,每个组件管理自己的状态。:React引入了虚拟DOM的概念,它是一个JavaScript对象,代表实际DOM。当组件的状态发生变化时,React会重新构建虚拟DOM,并与旧的虚拟DOM进行比较,计算出最小的DOM更新操作,以提高性能。:React拥有一个庞大的生态系统,包括各种第三方库和工具,如Redux(状态管理)、React Router(路由)、styled-components(样式管理)等。

2024-12-20 09:40:02 366

原创 如何为Spring MVC项目编写单元测试?

为Spring MVC项目编写单元测试是一个重要的实践,它可以帮助确保代码的正确性和稳定性。

2024-12-20 09:33:29 831

原创 springMVC项目,当分到了个新模块,需要写那几个地方

这些步骤可能会根据项目的具体需求和团队的开发流程有所不同,但它们提供了一个基本的框架,帮助你开始一个新的模块的开发。

2024-12-19 18:02:32 204

原创 js是怎么实现页面跳转的

选择哪种方法取决于具体需求,例如是否需要创建新的历史记录项,是否需要在新页面打开,或者是否需要强制刷新。

2024-12-19 17:31:25 602

原创 java测试类怎么编写

确保你有JUnit库在classpath中,使用时可能需要添加依赖到你的项目中。对于JUnit 5,你可能需要添加以下依赖到你的。注解与JUnit 4/5框架。提示:AI自动生成,仅供参考。Java测试类通常继承自。

2024-12-19 17:25:01 355

原创 SpringMVC中MVC分别代表什么

‌

2024-12-17 18:05:48 680

原创 怎么运行vue项目的命令

npm run dev

2024-11-25 09:32:06 194

原创 什么是脏读、不可重复读、幻读呢?

**幻读**: 幻读,并不是说两次读取获取的结果集不同,幻读侧重的方面是某一次的 select 操作得到的结果的数据状态无法支撑后续的业务操作。- **脏读**: 脏读指的是读到了其他事务未提交的数据,未提交意味着这些数据可能会回滚,也就是可能最终不会存到数据库中,也就是不存在的数据。读到了并不一定最终存在的数据,这就是脏读。- **不可重复读**: 不可重复读指的是在一个事务内,最开始读到的数据和事务结束前的任意时刻读到的同一批数据出现不一致的情况。

2024-11-22 17:32:50 226

原创 如何查看自己电脑的ip地址

首先 win + R。输入 cmd ,点击确认。输入 ipconfig ,点击确认。

2024-11-19 10:07:36 272

原创 Session、Cookie 与 Application

客户端请求服务器,如果服务器记录该用户状态,就获取 Session来保存状态,这时,如果服务器已经为此客户端创建过session,服务器就按照sessionid把这个 session检索出来使用;当浏览器再请求该 网站时,浏览器把请求的网址连同该Cookie一同提交给服务器,服务器检查该Cookie,以此来辨认用户 状态。Cookie和Session都是客户端与服务器之间保持状态的解决方案,具体来说,cookie机制采用的是在客 户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。

2024-11-15 17:12:46 413

原创 为什么要四次挥手?

TCP 协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。TCP 是全双工模式,这就意味 着,当 A 向 B 发出 FIN 报文段时,只是表示 A 已经没有数据要发送了,而此时 A 还是能够接受到来自 B 发出的数据;B 向 A 发出 ACK 报文段也只是告诉 A ,它自己知道 A 没有数据要发了,但 B 还是能够向 A 发送数据。所以想要愉快的结束这次对话就需要四次挥手。

2024-11-15 17:09:13 188

原创 Redis 事务相关的命令有哪几个?

WATCH用来监视一些key,一旦这些key在事务执行之前被改变,则取消事务的执行。WATCH取消 WATCH 命令对所有 key 的监视。DISCARD用来取消一个事务;MULTI用来组装一个事务;EXEC用来执行一个事务;

2024-11-15 17:06:32 328

原创 怎么理解 Redis 事务?

事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行,事务在执行的过程中,不 会被其他客户端发送来的命令请求所打断。事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。

2024-11-15 17:05:41 163

原创 List、Map、Set三个接口,存取元素时,各有什么特点?

注意,不是那种按年龄、按大小、按价格之类的排序。一个对象可以被反复存储进List 中,每调用一次add方法,这个对象就被插入进集合中一次,其实,并不是把这个对象本身存储进了集 合中,而是在集合中用一个索引变量指向这个对象,当这个对象被add多次时,即相当于集合中有多个 索引指向了这个对象。它是双列的集合,其中有put方法,定义如下:put(obj key,obj value),每次存储时,要存储一对 key/value,不能存储重复的key,这个重复的规则也是按equals比较相等。

2024-11-15 17:02:38 602

原创 Java创建对象有几种方式?

java中提供了以下四种创建对象的方式:new创建新对象通过反射机制采用clone机制通过序列化机制。

2024-11-15 17:00:23 151

sakura安装在这里面

sakura安装在这里面

2025-07-02

React Developer Tools 插件

React Developer Tools 插件

2025-05-19

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

TA关注的人

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