- 博客(81)
- 收藏
- 关注
原创 JMeter性能测试
本文介绍了JMeter 5.5压力测试工具的基本使用方法。主要内容包括:JMeter的启动方式、基本测试流程(添加线程组、HTTP请求、结果树等)、常用组件功能(线程组参数设置、HTTP取样器、结果查看、Cookie管理等)以及高级功能(JSON提取器、断言、聚合报告、同步定时器等)。文章还详细说明了如何安装插件、使用梯度线程组进行性能测试,以及如何生成测试报告。通过图文并茂的方式,全面展示了JMeter在接口性能测试中的应用场景和操作方法,为使用者提供了实用的参考指南。
2025-11-27 21:15:29
742
原创 Selenium自动化测试
摘要:本文详细介绍了Selenium自动化测试的实现方法,主要包括:1)准备工作,包括引入Selenium和WebDriverManager依赖;2)常用操作如元素定位(cssSelector/xpath)、点击/输入/清除等对象操作;3)窗口管理,包括句柄获取/切换、大小设置和截图功能;4)三种等待机制;5)浏览器导航和弹窗处理;6)文件上传和浏览器参数设置(无头模式/加载策略)。文章以百度页面为例,提供了完整的代码示例,帮助开发者快速实现Web自动化测试功能。
2025-11-19 10:10:59
570
原创 测试用例的设计思路及方法
摘要: 本文系统介绍了软件测试用例的设计方法与应用。首先阐述了测试用例的组成要素,以邮箱注册为例展示完整的测试用例模板。接着提出测试用例设计的通用思路,包括功能、性能、界面等多个维度的测试覆盖。重点讲解了五种设计方法:1)等价类与边界值分析法;2)正交法减少测试组合数量;3)判定表法处理复杂逻辑关系;4)场景法区分基本与备用事件流;5)错误猜测法基于经验补充用例。最后通过登录功能和命令行程序示例,展示了测试用例的实际应用。这些方法为软件测试提供了系统化的设计思路。
2025-11-08 20:04:08
1096
2
原创 Spring的三级缓存和SpringMVC的流程
Spring通过三级缓存机制解决循环依赖问题:一级缓存存储完整Bean,二级缓存存储半成品Bean,三级缓存存储Bean工厂类。该机制能处理普通循环依赖,但无法解决构造器循环依赖、原型Bean循环依赖和复杂AOP场景下的循环依赖。Spring MVC处理流程包括:请求分发、Handler查找、处理执行、视图解析、视图渲染和结果返回六个步骤。
2025-10-23 13:58:57
579
原创 Spring 原理
本文系统介绍了Spring框架中Bean的作用域、生命周期以及SpringBoot自动配置原理。主要内容包括:1)Bean的6种作用域(Singleton、Prototype、Request等)及其特点;2)Bean生命周期的5个核心阶段(实例化、属性注入、初始化等);3)Spring自动配置的实现机制,重点分析@SpringBootApplication注解的工作流程,包括通过@ComponentScan、@Import和第三方注解实现自动配置的原理;4)深入源码解析Spring容器初始化Bean的关键方
2025-10-23 10:56:24
733
原创 Java Web 程序在 Linux 上的部署
本文介绍了在Linux系统中部署Web项目的完整流程。首先讲解了使用apt命令管理软件包、安装JDK和MySQL的基本操作;然后详细说明了如何通过Maven配置多环境参数、打包项目并上传到服务器;最后介绍了后台运行程序、处理端口冲突的方法。整个部署过程涵盖了从基础环境搭建到项目上线的关键步骤,为开发者提供了实用的Linux部署指导。
2025-10-19 17:29:51
933
原创 验证用户登录的两种方式
本文介绍了两种用户登录验证方式:Cookie/Session和令牌机制。Cookie/Session方式通过服务器保存SessionID实现用户验证,但在集群环境下存在局限性。而令牌机制(以JWT为例)通过生成包含用户信息的加密字符串进行验证,解决了集群环境下的同步问题。令牌由header、body和签名三部分组成,服务器生成后返回给客户端存储,后续请求通过验证令牌有效性来判断登录状态。相较于Session,令牌机制无需额外资源,且天然支持分布式环境,具有更好的扩展性和安全性。
2025-10-19 16:46:39
889
原创 Spring 事务
本文介绍了Spring框架中的事务管理机制。主要内容包括:1. 事务基本概念,即一组操作的原子性执行;2. Spring提供的两种事务实现方式:编程式事务(手动管理)和声明式事务(通过@Transactional注解);3. @Transactional注解的核心属性:rollbackFor(异常回滚规则)、isolation(隔离级别)和propagation(传播机制);4. 重点讲解了7种事务传播机制及其应用场景,特别是REQUIRED、REQUIRES_NEW和NESTED的区别。文章通过代码示例展
2025-10-13 15:18:12
894
原创 Spring AOP
摘要:Spring AOP是一种面向切面编程的实现,通过切面(Aspect)对特定方法进行统一处理,如日志、事务管理等。AOP的核心包括切点(Pointcut)和通知(Advice),支持多种通知类型(@Around、@Before等)。Spring AOP基于动态代理实现,包括JDK动态代理和CGLIB代理。AOP的优势在于减少冗余代码,增强功能而不侵入原有逻辑。
2025-10-11 21:35:25
719
3
原创 Spring 的统一功能
摘要:本文详细介绍了Spring框架中的拦截器、统一数据返回格式和统一异常处理的实现原理。拦截器通过实现HandlerInterceptor接口,在请求处理前后执行特定逻辑;统一数据返回格式通过ResponseBodyAdvice接口实现响应数据的标准化处理;统一异常处理则利用@ControllerAdvice和@ExceptionHandler注解来捕获和处理异常。文章还分析了DispatcherServlet的源码实现,包括初始化流程和请求处理机制,并探讨了适配器模式在Spring中的应用场景。这些核心
2025-10-08 19:58:40
1149
2
原创 MyBatis 进阶
本文介绍了MyBatis的动态SQL功能及其常用标签:1. <if>标签实现条件判断;2. <trim>标签处理多余字符;3. <where>标签智能生成查询条件;4. <set>标签用于更新操作;5. <foreach>标签遍历集合;6. <include>标签复用SQL片段。还讲解了MyBatis Generator自动生成代码工具的使用方法,包括配置文件和插件配置。最后介绍了MyBatis-Plus的快速集成方式,展示了如何通过注
2025-10-04 10:36:01
1093
原创 MyBatis 基础
本文介绍了MyBatis持久层框架的基本使用。首先说明了MyBatis的入门操作,包括创建SpringBoot工程、配置数据库连接、编写持久层代码和单元测试。然后详细讲解了MyBatis的基础CRUD操作,包括参数传递、增删改查的实现,以及解决数据库字段与Java对象属性映射问题的三种方法:起别名、结果映射和开启驼峰命名。接着介绍了XML配置方式的使用,包括方法定义与实现的分离、多表查询的实现。还重点分析了#{}和${}两种参数赋值的区别,强调预编译SQL的安全性优势。最后简要说明了数据库连接池的作用和常用
2025-10-03 14:57:27
819
原创 SpringBoot 的配置文件与日志
本文介绍了SpringBoot中的配置文件管理和日志系统。配置文件部分对比了.properties和.yml格式,详细说明了键值对、对象、集合和Map的配置方法,推荐使用可读性更高的yml格式。日志部分阐述了Slf4j日志框架的使用,包括日志级别、格式配置、持久化和分割策略,并提供了通过LoggerFactory和@Slf4j注解输出日志的示例代码。文章还简要介绍了外观模式在日志系统中的应用及其优势。
2025-09-29 21:14:23
803
原创 Spring的IoC与DI
本文介绍了Spring框架中的核心概念与应用分层架构。首先阐述了应用分层思想,包括MVC模式和三层次架构,分析了二者的区别与联系。重点讲解了IoC(控制反转)思想及其实现方式,详细说明了Spring项目的扫描路径配置和五大类注解(@Controller、@Service等)的使用场景。文章还介绍了三种依赖注入方式(属性注入、构造方法注入和Setter注入)及其优缺点,并针对Autowired注解可能存在的问题给出了三种解决方案(@Primary、@Qualifier、@Resource)。最后对比了@Aut
2025-09-27 19:32:14
794
原创 初识SpringBoot和SpringMVC
本文介绍了SpringBoot和SpringMVC的基础知识。在SpringBoot部分,讲解了项目创建、目录结构、运行方法及第一个程序示例;在SpringMVC部分,详细说明了MVC思想、路由映射、参数接收(包括基本参数、对象、数组、JSON等)以及响应处理(返回静态页面、数据、JSON等)。此外还介绍了文件上传、Cookie/Session操作、Header获取等Web开发常用功能。文章内容涵盖了SpringBoot和SpringMVC的核心使用场景,为开发者提供了快速入门指南和实践参考。
2025-09-24 14:18:08
725
原创 Maven项目创建与配置
本文介绍了Maven项目管理工具的核心功能与配置方法。主要内容包括:1)Maven项目的创建流程;2)核心功能:项目构建(通过简单命令完成编译、测试、打包等操作)和依赖管理(通过pom.xml自动引入直接/间接依赖);3)MavenHelper插件的安装与使用;4)仓库体系:本地仓库和远程仓库(中央仓库/私有服务器)的工作原理;5)项目配置方法,包括镜像源等设置。Maven通过自动化构建和依赖管理,极大简化了Java项目的开发流程。
2025-09-21 14:06:40
615
原创 HTTP协议介绍
本文系统介绍了HTTP协议及其相关技术要点。主要内容包括:1. HTTP协议概述:解释了HTTP协议的基本特性、交互过程及Fiddler抓包工具的使用方法;2. 协议格式解析:详细说明了HTTP请求和响应的四部分结构(首行、头、空行、正文)及URL的组成要素;3. GET/POST方法对比:澄清了常见误解,强调两者本质区别在于使用习惯而非安全性;4. 状态码和头部字段:列举了常见状态码含义及Cookie等重要头部字段的作用机制;5. 请求构造方式:介绍了Postman工具及Socket API实现方法;6.
2025-09-18 20:40:26
1223
原创 网络原理介绍
本文系统介绍了计算机网络协议栈的核心内容,主要包括:1.应用层协议(XML/JSON/Protobuf等数据格式及特点);2.传输层协议(TCP的可靠传输、流量控制、拥塞控制等机制,UDP的特性及校验和算法);3.网络层IP协议(地址管理、路由选择、NAT机制等);4.数据链路层以太网协议。重点剖析了TCP的三次握手/四次挥手、滑动窗口、流量控制等关键技术原理,以及IP地址管理、路由转发等网络层核心机制,全面呈现了计算机网络各层协议的工作原理和关键技术。
2025-09-17 07:30:00
785
原创 网络编程入门:构建你的第一个客户端-服务器应用
本文介绍了网络编程的基础概念和实现方法。主要内容包括:1.网络基础概念,如局域网/广域网、五元组、协议分层及封装分用过程;2.UDP编程,详细说明了UDP的特性、核心API,并实现了回显服务器和词典服务器;3.TCP编程,介绍了TCP的特点、核心API,实现了回显服务器和客户端,讨论了多线程和线程池优化方案。文章通过具体代码示例,展示了如何使用Java进行UDP和TCP网络编程,并比较了两种协议的特点和适用场景。
2025-09-12 16:38:30
945
原创 锁策略,CAS和并发工具类
本文系统介绍了多线程编程中的锁策略、CAS操作及并发工具类。主要内容包括:1)详细分析乐观锁/悲观锁、轻量级/重量级锁等锁策略;2)剖析synchronized锁的升级机制和优化策略;3)讲解CAS原理及其在原子类中的应用;4)介绍Callable接口、ReentrantLock、信号量等并发工具的使用;5)分析多线程环境下集合类的线程安全实现方案。文章通过代码示例展示了不同锁机制的实际应用场景,帮助开发者深入理解多线程编程的核心概念和技术要点。
2025-09-08 09:00:00
822
原创 文件 IO
本文系统介绍了Java文件操作相关内容,包括文件分类、路径表示、文件系统操作和内容读写。主要内容有:1.文件按格式分为文本文件和二进制文件,按路径分绝对路径和相对路径;2.使用File类进行创建、删除、重命名等文件系统操作;3.通过字节流(InputStream/OutputStream)和字符流(Reader/Writer)实现文件内容读写;4.介绍了try-with-resource语法避免资源泄露;5.提供了文件搜索、复制和内容查找三个典型应用示例。文章全面讲解了Java文件操作的基础知识和实用技巧。
2025-09-08 09:00:00
847
原创 多线程代码经典案例
本文介绍了Java多线程编程中的四种核心设计模式:单例模式、阻塞队列、定时器和线程池。详细讲解了单例模式的饿汉式和懒汉式实现及其线程安全问题解决方案;分析了阻塞队列的生产者消费者模型及其线程安全实现;阐述了定时器的原理和优先级队列实现;最后探讨了线程池的设计思想和使用方法,并提供了模拟实现。这些模式都是解决多线程编程中常见问题的有效工具,能够提高程序性能和可靠性。
2025-09-03 14:17:06
922
原创 线程安全及死锁问题
文章系统讲解了Java多线程中的线程安全问题及解决方案。主要内容包括:1)线程安全问题的产生原因,如多线程修改共享变量、操作非原子性等;2)使用synchronized关键字的加锁机制解决线程安全问题,分析其优势(自动解锁、可重入锁);3)死锁问题及其四种必要条件,提出通过破坏循环等待条件来避免死锁;4)Java标准库中线程安全与不安全类的对比;5)内存可见性问题及volatile关键字的解决方法。文章通过代码示例详细阐述了线程安全相关概念及实践方案。
2025-08-29 22:17:46
855
原创 初步了解多线程
本文系统介绍了Java多线程编程的核心概念。首先对比了进程和线程的区别,指出线程能更高效地解决并发问题。重点讲解了Java中创建线程的5种方式:继承Thread类、实现Runnable接口、匿名内部类及lambda表达式。详细分析了Thread类的关键属性和方法,包括线程状态、启动/终止机制、join等待等。通过多个代码示例演示了线程的随机调度特性、中断处理及状态转换。最后介绍了使用jconsole工具监控线程运行情况的方法,为理解Java并发编程提供了全面的基础指导。
2025-08-25 20:20:53
1005
原创 简单介绍计算机的工作过程
本文主要介绍了CPU的基本工作原理和操作系统中进程管理的核心概念。CPU执行指令的过程包括取指、译码和执行三个阶段,需要关注指令集、操作数和执行效率等问题。操作系统的作用在于管理硬件设备和提供稳定的软件运行环境。进程作为系统资源分配的基本单位,其管理涉及描述(PCB)和组织(链表)两个步骤。PCB包含PID、内存指针、文件描述符表等核心属性,支持进程调度和并发执行。进程间通过公共空间进行通信,而内存管理则保证各进程内存空间的独立性。文章通过具体示例和概念解析,帮助读者理解计算机系统的基本运行机制。
2025-08-23 17:14:17
631
原创 MySQL数据库备份与恢复
本文系统介绍了MySQL日志系统与备份策略。主要内容包括:1) MySQL各类日志(二进制日志、错误日志等)的功能与配置;2) 二进制日志的格式、刷盘策略及恢复方法;3) 三种备份方法:mysqldump逻辑备份、SQL语句导出导入、XtraBackup物理备份;4) 详细说明全量/增量备份操作流程及恢复步骤。重点阐述了生产环境下的最佳实践,如推荐使用ROW格式二进制日志、sync_binlog=1刷盘策略等。文章为数据库管理员提供了全面的日志管理与备份恢复方案。
2025-08-17 21:34:22
736
原创 SQL语句优化
本文系统介绍了MySQL数据库优化的核心方法,重点聚焦索引优化策略。文章首先阐述了数据库优化的关键因素,包括表结构设计、索引创建、存储引擎选择等。然后详细讲解了执行计划(EXPLAIN)的各项指标及其优化意义,特别是type列的性能等级划分和Extra列的关键信息。针对索引优化,文章深入分析了索引合并、索引下推、复合索引的最左匹配原则等高级特性,并列举了11种常见的索引失效场景。最后提供了全面的索引使用原则和16个常见优化问题的解答方案,涵盖从基础概念到实战技巧的完整知识体系。全文通过大量SQL示例和优化建
2025-08-13 21:43:10
1097
原创 数据库设计简述
本文介绍了MySQL数据库设计的关键步骤和规范。主要内容包括:1)数据库设计的4个步骤:需求分析、概念设计、逻辑设计和物理设计;2)三大范式(1NF、2NF、3NF)的定义及作用,重点分析了不满足范式可能引发的数据冗余、更新异常等问题;3)三种关系(一对一、一对多、多对多)的实现方式;4)E-R图的使用方法;5)数据库扩展性设计考虑,如冗余字段和预留字段的应用。文章为数据库设计提供了系统性的指导思路。
2025-08-08 21:44:19
948
原创 MySQL存储过程和触发器
本文系统介绍了MySQL存储过程的创建与使用,包括变量定义、条件判断、循环控制、游标操作等核心知识。详细讲解了存储过程的优缺点分析,以及存储函数与触发器的区别与应用场景。通过具体示例演示了如何实现参数传递、条件处理、日志记录等功能,并深入解析了行级触发器的实现机制。文章还总结了存储过程在实际开发中的常见问题与解决方案,为数据库编程提供了全面指导。
2025-08-03 13:06:53
1258
原创 MySQL的JDBC编程
本文介绍了MySQL数据库的JDBC操作流程,包括前置知识、写操作和读操作的实现步骤。内容涵盖:1)如何创建Maven项目并引入MySQL依赖;2)URL格式解析;3)JDBC写操作流程(创建数据源、建立连接、构造SQL、执行更新、释放资源);4)使用PreparedStatement防止SQL注入;5)JDBC读操作流程(执行查询、处理ResultSet结果集)。文章通过代码示例详细演示了插入、查询等基本操作,并强调了资源释放的顺序和SQL语句参数化的安全性考虑。
2025-07-29 20:41:31
757
原创 MySQL索引事务
MySQL索引与事务详解:索引通过B+树结构优化查询速度,但会降低增删改效率,适合频繁查询场景。事务提供原子性、一致性、隔离性和持久性(ACID特性),隔离级别从read uncommitted到serializable在数据准确性和并发效率之间权衡。InnoDB引擎采用B+树索引,支持事务管理,通过锁机制解决脏读、不可重复读和幻读问题。
2025-07-27 12:30:32
774
原创 MySQL操作进阶
本文介绍了MySQL数据库的基础操作,主要包括三个方面内容:数据库约束、表设计和查询操作进阶。数据库约束部分详细讲解了NOT NULL、UNIQUE、DEFAULT、PRIMARY KEY和FOREIGN KEY五种约束类型的作用和使用方法。表设计部分阐述了如何根据需求场景设计表结构,重点分析了一对一、一对多和多对多三种关系的实现方式。查询操作进阶部分介绍了聚合查询、分组查询、联合查询(内连接、外连接、自连接)、子查询和合并查询等高级查询技巧,特别强调了在数据量大时联合查询可能带来的性能问题。
2025-07-26 17:35:35
1110
原创 MySQL的基础操作
本文介绍了MySQL数据库的基本概念和SQL操作。主要内容包括:1.基本概念部分解释了MySQL的客户端-服务器结构、请求响应机制、数据存储方式(内存与硬盘区别);2.SQL操作部分详述了数据库的创建、查看、选择和删除命令,介绍了常用的数据类型(整型、浮点型、字符串、时间戳等)以及数据表的基本操作;3.重点讲解了MySQL表的增删查改操作,包括新增数据的多种方式、查询操作(全列查询、表达式查询、条件查询等)、修改和删除数据的语法。文章还特别强调了全列查询的风险以及排序、分页等查询技巧。
2025-07-23 21:18:58
1063
原创 数据结构之图
摘要:本文系统介绍了图的基本概念、存储结构和相关算法实现。主要内容包括:1) 图的邻接矩阵和邻接表两种存储方式及其Java实现;2) 图的广度优先和深度优先遍历算法;3) 最小生成树的Kruskal和Prime算法;4) 单源最短路径的Dijkstra、Bellman-Ford算法以及多源最短路径的Floyd-Warshall算法。文章详细阐述了各算法的设计思路和实现过程,并提供了完整的Java代码示例,涵盖了图论中的核心概念和典型应用场景。
2025-07-19 22:38:10
1002
原创 数据结构之B-树
摘要:本文介绍了B-树和B+树的基本性质、插入过程及实现方法。B-树是一种平衡多叉树,具有特定的节点关键字和子节点数量要求。文中详细演示了B-树的插入和分裂过程,并给出了Java实现代码。B+树与B-树类似,但所有关键字都出现在叶子节点,更适合文件索引系统。最后分析了两种树在MySQL索引中的应用差异,指出MyISAM使用B+树作为非聚集索引,而InnoDB采用聚集索引,数据文件本身就是索引文件。文章通过示例和代码展示,帮助理解这两种重要数据结构的特点和应用场景。(150字)
2025-07-15 13:29:15
1174
原创 数据结构之并查集和LRUCache
本文介绍了两种重要的数据结构:并查集和LRUCache。并查集用于高效处理集合合并与查询操作,文章详细讲解了其原理、模拟实现方法,并给出亲戚关系判断、省份数量计算等应用实例。LRUCache是一种缓存淘汰算法,文章剖析了其哈希表+双向链表的实现原理,提供了完整的模拟实现代码,并介绍了基于LinkedHashMap的简化实现方案。两种数据结构在实际开发中都有广泛应用,本文通过代码示例和解题思路展示了它们的具体使用方法。
2025-07-12 18:54:10
769
原创 数据结构之位图和布隆过滤器
本文介绍了两种高效处理海量数据的数据结构:位图和布隆过滤器。位图通过二进制位存储状态,适合整数查询,40亿数据仅需500M空间。布隆过滤器扩展到位图存储字符串,通过多个哈希函数减少冲突,但存在误判可能。文章还讨论了海量数据问题的解决思路,包括哈希切割、双位图统计等,并对比了一致性哈希与普通哈希的区别。最后区分了哈希算法(不可逆)与加密算法(可逆)的特性。这些数据结构和技术特别适用于需要高效查询和节省内存的大数据场景。
2025-07-09 21:25:28
882
原创 数据结构之二叉平衡树
本文介绍了两种自平衡二叉搜索树:AVL树和红黑树。AVL树通过保持左右子树高度差不超过1来实现严格平衡,其查询效率为O(logN),但在插入删除时需要频繁旋转调整。红黑树通过颜色规则(无连续红节点、路径黑节点数相同)实现近似平衡,最长路径不超过最短路径两倍,虽然查询效率略低于AVL树,但插入删除时旋转次数较少,实际应用更广泛。文章详细阐述了两者的性质、节点结构、插入操作(含平衡调整逻辑)及验证方法,并通过性能对比说明AVL树适合读多写少场景,红黑树更适合频繁修改的场景。
2025-07-06 11:06:08
969
原创 反射,枚举和lambda表达式
Java反射机制允许运行时动态获取类的属性和方法,并调用对象的方法。通过Class、Field、Method和Constructor等类实现反射操作,可获取类信息、创建实例、访问私有成员等。反射提高了灵活性但影响性能,常用于框架开发。枚举用于管理常量,提供values()、ordinal()等方法,构造方法默认私有,反射无法创建枚举实例。Lambda表达式简化匿名内部类,支持函数式编程,语法精简但可读性较差,适用于并行计算但调试困难。
2025-06-30 22:06:07
1087
原创 数据结构之Map和Set
本文系统介绍了常见数据结构及其实现原理,主要包括二叉搜索树、哈希表、TreeMap/TreeSet等内容。详细讲解了二叉搜索树的查找、插入、删除操作及其时间复杂度分析;对比了TreeMap与HashMap、TreeSet与HashSet的特性差异;深入剖析了哈希冲突的解决策略,包括开散列法的具体实现。文章还解读了JDK中HashMap的核心源码,包括初始化、扩容机制、树化条件等关键实现细节。通过理论分析与代码示例相结合的方式,全面阐述了这些数据结构的底层实现原理和应用场景。
2025-06-29 12:20:50
659
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅