自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 爆肝 5 万字!Git 从零基础到大神,这篇直接封神

这就需要我们去解决冲突,但是我们⽆法保证对于冲突问题可以正确地⼀次性解决掉,因为在实际的项⽬中,代码冲突不只⼀两⾏那么简单,有可能⼏⼗上百⾏,甚⾄更多,解决的过程中难免⼿误出错,导致错误的代码被合并到此时的状态为master 上。⽐如你新增了⼀⾏,这就是⼀个修改,删除了⼀⾏,也是⼀个修改,更改了某些字符,也是⼀个修改,删了⼀些⼜加了⼀些,也是⼀个修改,甚⾄创建⼀个新⽂件,也算⼀个修改。如果有⼀天你发现之前前的⼯作做的出现了很⼤的问题,需要在某个特定的历史版本重新开始,这个时候,就需要版本回退的功能了。

2026-03-19 22:38:11 560 8

原创 软件测试入门复习笔记:测试分类篇

• ⽩盒测试主要应⽤于单元测试阶段• 先执⾏静态设计⽤例的⽅法,再执⾏动态设计测试⽤例的⽅法• 设计⽤例⼀般使⽤路径测试,重点模块追加使⽤逻辑覆盖⽅法。

2026-03-13 17:03:08 421

原创 软件测试入门复习笔记:一套吃透测试用例设计篇

不说平时不常见的,就拿电饭煲来说,让你写20个测试用例,可能就会汗流浃背,不说能不能覆盖出,还容易发生重复等陷入漩涡,所以说往往通过头脑风暴能够想出来的⽤例是寥寥⽆⼏的,我们设计测试⽤例的时候需要有思路的去设计,这个思路就是万能公式。L下⻆的数字“4”表⽰有4横⾏,简称⾏,即要做四次试验;依据需求将输⼊(特殊情况下会考虑输出)划分为若⼲个等价类,从等价类中选出⼀个测试⽤例,如果这个测试⽤例测试通过,则认为所代表的等价类测试通过,这样就可以⽤较少的测试⽤例达到尽量多的功能覆盖,解决了不能穷举测试的问题。

2026-03-12 18:24:45 399

原创 软件测试入门复习笔记:BUG篇

:从需求分析开始,到测试计划、用例设计、测试执行、结果评估,再到上线验证和线上维护,是一套完整的质量保障流程。

2026-03-11 17:27:59 416

原创 软件测试入门复习笔记:认识测试

首先什么是测试,拿生活中的例子来讲,就好比你在炒着一盆菜,不知道咸不行咸,只有去尝一口才知道,这就是测试。那软件测试呢,你代码写完不知道能不能运行,只有跑一下对不对才知道,这就是软件测试。这些都是测试,所以测试在生活中处处可⻅软件测试就是验证软件产品特性是否满⾜⽤⼾的需求。

2026-03-10 16:31:38 224

原创 一篇吃透 Java 泛型:语法与底层原理

当你使用泛型时,编辑器做了三件事。

2026-03-08 17:37:33 340

原创 Java 接口详解:语法、特性、常见接口与面试高频考点

接⼝的定义格式与定义类的格式基本相同,将class关键字换成interface关键字,就定义了⼀个接⼝public interface 接口名 {// 常量(默认 public static final)// 抽象方法(默认 public abstract)接⼝中每⼀个⽅法都是public的抽象⽅法,即接⼝中的⽅法会被隐式的指定为(只能是,其他修饰符都会报错)// 等价于 public abstract void run();void run();

2026-03-08 12:41:07 391 1

原创 Java 抽象类详解:语法、特性与面试高频考点

用abstract关键字声明不能创建对象(不能 new抽象⽅法不能是private抽象⽅法不能被final和static修饰可以包含:普通成员变量普通方法(有实现)抽象方法(没有方法体,只有声明)子类必须重写所有抽象方法,否则子类也必须变成抽象类抽象类存在的最大意义就是为了被继承,抽象类本身不能被实例化,要想使用,只能创建该抽象类的子类.然后让子类重写抽象类中的抽象方法。

2026-03-07 16:28:19 228

原创 Java String 全解析:从底层存储到高效使用

也可以使用compareTo ⽅法,与equals不同的是,equals返回的是boolean类型,⽽compareTo返回的是int类型。在 Java 语言中,字符串的使用非常广泛、频率极高,因此 Java 专门提供了 String 类 来对字符串进行统一的创建、管理和操作。String类重写了⽗类Object中equals⽅法,Object中equals默认按照==⽐较,String重写equals⽅法。为此Java 专门为字符串开辟的一块内存区域,为字符串常量池,equals ⽅法:按照字典序⽐较。

2026-03-07 13:11:19 365

原创 Java 内部类详解

内部类也是封装的⼀种体现,内部类最大的特点。

2026-03-06 20:29:42 381 1

原创 Java 异常处理机制,一篇全搞定

简单来说,就是为了当程序发生异常时,可以按照代码预先设定好的异常逻辑,来针对性地处理异常,让程序尽大可能的恢复正常并继续执行,且保持代码的清晰。所以如果说finally里面有return,那么就会执⾏finally中的return,从⽽不会执⾏到try中原有的return。不论程序是否发⽣异常,都需要执⾏,,因为异常会引发程序的跳转,可能导致有些语句执⾏不到,finally就是⽤来解决这个问题的。简单来说,throw、throws都是遇到问题不进行具体处理,而是继续抛给调用者,不进行处理就会报错程序停止。

2026-03-05 20:37:10 335

原创 LuckyDraw抽奖系统测试报告

这是一个基于 Spring Boot 框架构建的企业级抽奖系统。系统集成了 MyBatis 进行数据持久化,Redis 进行缓存与分布式锁,RabbitMQ 处理高并发下的异步抽奖业务,并包含完善的用户体系、活动/奖品管理以及中奖记录模块等核心抽奖功能,由本人独立完成设计、开发、测试及云服务器部署的全流程工作二、项目模块及实现功能⼈员业务模块管理员注册管理员手机号密码登录管理员邮箱验证码登录普通用户创建奖品业务模块奖品创建奖品列表展示活动业务模块活动创建活动列

2026-02-26 15:46:20 885

原创 ideaPool论坛系统测试报告

用户系统: 支持用户注册、登录(Session 管理)、信息修改、头像上传。文章管理回复系统: 支持对文章进行回复、查看回复列表。板块管理: 支持多板块分类展示。站内信: 支持用户之间发送私信、查看未读消息。本次对ideaPool用户注册 / 登录、文章管理、回复互动、板块分类、站内信、个人中心等。本次测试共设计并执行测试用例163个,覆盖功能测试、自动化测试、接口测试、性能测试、兼容性测试、安全测试、网络异常测试等多种测试类型,执行测试覆盖率97%,全面验证系统在正常、异常、并发、多环境下。

2026-02-12 16:53:08 1120 2

原创 告别只会功能测试!JMeter 接口性能测试全套实操,看完直接上手

实际上性能测试是一个很大的概念,从测试范围与对象来看,性能测试可细分为多种类型,包括系统级性能测试(验证整个系统的端到端性能)、服务器性能测试(聚焦服务器硬件与系统软件的承载能力)、数据库性能测试(验证数据库的查询与写入性能),以及本文的核心——性能接口测试对于一些企业来说,也会招聘专业的性能测试人员,当然功能测试人员也需要具备一定的性能测试能力,所以本篇针对功能测试人员:能够对个人编写的项目进行接口的性能测试Apache JMeter 是一款开源免费的纯 Java 测试工具,主打。

2025-12-28 10:45:41 891

原创 吊打 Web 自动化测试!一篇吃透 Selenium 元素定位 + 核心函数,新手直接上手

通过概念篇,你一定理解了web自动化示例怎么就能按照你的代码执行自动化,但是又可能又会带有新的好奇,一个web网页界面这么多元素,它是怎么找到的,还有好几个如等方法中,怎么有些出现了奇怪的字符串,它又是用来干什么的,它们作业又是什么?别慌,这些东西只是涉及到元素的定位和⾃动化测试常⽤函数内容,今天这篇文章就来让你来更深刻的掌握自动化测试,保证你看完后,直接可以上手项目测试。

2025-12-27 09:45:22 1155

原创 吊打 Web 自动化基础!一篇吃透核心概念,告别懵圈式学习

在生活里,如果你不懂英文,去国外餐厅点餐时,就需要一个翻译官——你把“要一份牛排”的需求告诉翻译官,翻译官再用英文传达给服务员,服务员做好餐后,翻译官又把“餐品已备好”的信息反馈给你,翻译官就是驱动。在电脑里各种设备要和你进行通信,也需要驱动程序,驱动就好似沟通的桥梁所以程序想要打开web浏览器就需要安装web驱动(即WebDriver),WebDriver以本地化⽅式驱动浏览器。

2025-12-25 14:41:13 951

原创 Spring 开发小白学习过程中常用通用配置文件,即拿即用!(持续更新中)

是适配 Spring Boot 3.x 生态的版本(基于 Jakarta EE 规范,替代原 Java EE),核心是在 MyBatis 基础上做无侵入增强,大幅简化 CRUD 开发。:指定 Spring Boot 日志的输出文件名称,默认生成在项目根目录下(也可指定绝对路径,如 name: /logs/spring-blog.log)。注意:数据库登录账号 / 密码,示例为本地默认的 root/123456,生产环境需替换为安全的账号密码。java_blog_spring:要连接的数据库名。

2025-12-13 15:23:13 916 3

原创 Spring 后端安全双剑(下篇):JWT 无状态认证 + 密码加盐加密实战

核心特性单向哈希运算,将任意长度数据转换为固定长度的 “摘要值”;无法从摘要反推原文,数据微小变化会导致摘要完全不同。子类型MD(Message Digest):消息摘要算法(如 MD5)。SHA-1(Secure Hash Algorithm):安全散列算法。MAC(Message Authentication Code):消息认证码算法。适用场景:数据完整性验证、密码存储(存摘要而非明文)、数字签名组件。

2025-12-11 17:18:51 890 3

原创 Spring 后端安全双剑(上篇):JWT 无状态认证 + 密码加盐加密实战

令牌(Token)的本质:是服务端颁发给客户端的 “临时身份凭证”,本质是一段经过加密的字符串,包含用户身份、权限、过期时间等核心信息,服务器具备⽣成令牌和验证令牌的能⼒你可以把它理解为:用户登录成功后,服务端给的一张 “电子通行证”—— 后续客户端访问需要权限的接口时,只需出示这张 “通行证”,服务端验证通过就允许访问,无需再重复验证用户名密码⽤⼾登录 ⽤⼾登录请求,经过负载均衡,把请求转给了第⼀台服务器,第⼀台服务器进⾏账号密码验证,验证成功后,⽣成⼀个令牌,并返回给客⼾端。

2025-12-11 15:46:38 894

原创 Spring Boot 实战(一):拦截器 + 统一数据返回 + 统一异常处理,一站式搞定接口通用逻辑

拦截器是 SpringMVC 的核心组件,能在请求生命周期的关键节点执行自定义逻辑,常用于登录校验、接口访问日志、权限控制、参数校验等场景也就是说,允许开发⼈员提前预定义⼀些逻辑,在⽤⼾的请求响应前后执⾏.也可以在⽤⼾请求前阻⽌其执⾏.在拦截器当中,开发⼈员可以在应⽤程序中做⼀些通⽤性的操作,⽐如通过拦截器来拦截前端发来的请求,判断Session中是否有登录⽤⼾的信息.如果有就可以放⾏,如果没有就进⾏拦截实现HandlerInterceptor接⼝,并重写其所有⽅法@Slf4j@Component。

2025-12-04 15:58:56 807

原创 手把手教你 MyBatis 起飞(一):MyBatis动态SQL + 6大核心标签 + 实战避坑

动态 SQL 是指在程序运行时根据条件动态拼接、生成的 SQL 语句,而非硬编码在代码中的固定语句,就例如用户可自主选择查询表中的姓名、密码、年龄等字段的任意组合(仅查姓名,或同时查姓名与年龄,或全查),也可仅拼接输入的有效筛选条件,让 SQL 语句更贴合实际使用需求。

2025-11-29 16:51:39 632

原创 手把手教你 MyBatis 入门(二):#{} 和 ${} 的区别、用法及 SQL 注入防范(附代码案例)

不知道大家有没有好奇,之前在Mybatis的基础入门文章中,一直在用到 ,且使用的好好的,怎么突然出现了,其实在 MyBatis 参数赋值有两种⽅式,就是二者中其中的一种,只不过这两种赋值的方式有些较大的区别,参数解析机制完全不同,所以在使用过程中,针对不同的目的,用不同参数赋值方式首先分别用 #{} 和 ${} 接收不同类型的参数,来观察两者的区别#{}Mapper接⼝:测试代码:执⾏结果:Mapper接⼝:测试代码:执⾏结果:好像都可以执行成功,感觉是没什么差别,但是细心的你肯定观

2025-11-27 15:03:55 882

原创 手把手教你 MyBatis 入门:环境搭建 + 参数传递 + CRUD+ 多表查询实战

从上述代码和操作流程可以看出,对于JDBC来说,整个操作⾮常的繁琐,我们不但要拼接每⼀个参数,⽽且还要按照模板代码的⽅式,⼀步步的操作数据库,并且在每次操作完,还要⼿动关闭连接等,⽽所有的这些操作步骤都需要在每个⽅法中重复书写.那有没有⼀种⽅法,可以更简单、更⽅便的操作数据库呢?答案是肯定有的,那就是。在 MyBatis 中,param1、param2 是 无 @Param 注解时,多个单个参数的默认别名—— 本质是 MyBatis 为了避免参数名丢失后无法引用,给参数按。

2025-11-25 13:02:32 826 1

原创 一文搞懂 SpringBoot 配置文件:properties vs yml 全攻略

SpringBoot 虽然它已经帮我们预设了很多默认值(比如默认端口 8080),但实际开发中,“默认值” 很难满足所有需求,在加上 SpringBoot ⽀持并定义了配置⽂件的格式, 也在另⼀个层⾯达到了规范其他框架集成到SpringBoot的⽬的。properties 是 SpringBoot 最早支持的配置格式,也是创建SpringBoot项⽬默认的配置⽂件。配置⽂件也可以配置list集合,集合的读取和对象⼀样,也是使⽤。如果在项⽬中,想要主动的读取配置⽂件中的内容,可以使⽤。

2025-11-20 16:25:38 707 1

原创 Spring DI 入门详解:三种依赖注入方式 +@Autowired 歧义问题解决

DI(Dependency Injection)直译为“依赖注入”,依赖注⼊是⼀个过程,是指IoC容器在创建Bean时,去提供运⾏时所依赖的资源,⽽资源指的就是对象没有 DI:你得自己买原料、煮茶、做奶盖(自己创建依赖)有 DI:你直接点外卖,奶茶店(IOC容器)做好奶茶(依赖)送到你手上(注入)简单来说,就是把对象取出来放到某个类的属性中结合上篇的IOC文章,我们可以对IOC是 Spring 的核心思想,DI是其具体实现手段这句话应该会有了更深的理解,也就是。

2025-11-18 18:13:09 660

原创 Spring IoC 入门详解:Bean 注册、注解使用与 @ComponentScan 配置

IoC全称Inversion of Control (控制反转),咱先不说Spring IOC概念,我们首先按照字面意思给你举个生活的例子来对比一下假设你要装一套新房:方式1在没有IOC下:你就是业主,要亲手搞定所有事情,做的事情包括不限于:自己找工人,自己买材料,自己管流程,自己扛风险方式2在IOC下:你只需要做 2 件事,告诉装修公司需求:比如说我要简约风格、预算 30 万、3 个月完工。最后验收房子:装修公司把所有细节搞定,你直接拎包入住,剩下的所有事,全由装修公司负责,找工人、买材料等等。

2025-11-17 12:47:09 1068

原创 Spring MVC入门(一):第一个必写的简单小案例-留言板

获取全部留⾔全部留⾔信息,我们⽤List来表⽰,可以⽤JSON来描述这个List数据.前后端交互过程和接⼝传参,数据返回,以及⻚⾯展⽰,后续图书馆系统等等案例都将以这个为基础,不断扩展。

2025-11-15 14:35:14 749

原创 深入解析 IP 协议:从基础核心机制到地址管理、路由选择的全方位指南

本章内容虽然面试可能不考,写代码可能也用不到,毕竟在网络层平时不直接接触,但是或许之后的搭建某个环境进行某些测试是就用到了,并且也对于程序员来说也属于”常识“类的内容,还是值得得花点时间来整理一下的,希望这篇文章能帮助到你们。

2025-11-11 16:14:09 1012 5

原创 TCP的核心特性精讲(下篇)

在TCP的核心特性精讲(上篇)中详细介绍篇了 TCP 可靠传输的核心根基——确认应答、超时重传与连接管理(三次握手 / 四次挥手),它们构成了 TCP 稳定传输的核心骨架,而 TCP 的高效可靠,还离不开剩余七大核心特性滑动窗口、拥塞控制、延迟应答、捎带应答、粘包处理、流量控制、重复数据丢弃。本篇将逐一拆解七大特性,带你吃通TCP的十大特性机制TCP 十大特性围绕“可靠又高效”的目标,从确认重传、连接管理保障数据与连接的可靠性,到滑动窗口、流量拥塞控制平衡速度与网络负载,再到延时捎带、粘包处理、异常应对。

2025-11-09 10:00:00 692

原创 TCP的核心特性精讲(上篇)

TCP/IP是⽹络编程的,是⼀个服务器开发程序员的,是整个⽹络课程中的,也是各⼤公司笔试⾯试的,本章从到的详细讲解,梳理TCP的重点内容由于十大特性内容比较多,这边将内容分为上下两篇,上篇主要讲解TCP和加上,下篇讲解剩下七个机制。

2025-11-07 18:55:50 1204

原创 彻底搞懂 HTTPS 加密原理:从对称 / 非对称加密到数字证书,全方位拆解安全通信的底层逻辑

HTTPS 的 “加密传输 + 数字证书认证” 双机制,是面试中的重点考察内容,希望这篇文章可以让你们了解这背后的门道。

2025-11-05 15:11:58 1093

原创 HTTP 协议基本格式与 Fiddler 抓包工具实战指南

你每天打开浏览器刷网页、用 APP 发消息、看视频时,背后都有一个 “隐形的规则” 在协调数据传输 —— 这就是 HTTP。HTTP(HyperText Transfer Protocol,超文本传输协议)是一种应用非常广泛的应用层协议,它规定了客户端(如浏览器、手机 APP)和服务器之间如何传递数据。简单说,它就像客户端和服务器之间的 “对话语言”:客户端按这个规则 “提问”,服务器按这个规则 “回答”,双方才能顺利交换信息(比如网页内容、图片、视频、接口数据等)。

2025-11-02 15:22:13 1647 1

原创 Java 网络编程:TCP 与 UDP 的「通信江湖」(基于TCP回显服务器)

ServerSocket 是创建TCP服务端Socket的API。

2025-10-30 20:39:39 925 1

原创 Java 网络编程:TCP 与 UDP 的「通信江湖」(基于UDP回显服务器)

DatagramSocket是UDP socket,⽤于发送和接收UDP数据报。

2025-10-29 23:06:02 964 2

原创 跟 Java 聊聊 “文件那点事儿”:从不会 IO 到敢操作文件的小笔记

File类中的多个属性,构造方法和方法,我会着重讲解几个常见的,也是学文件操作比较重要的。构造方法签名说明根据⽗⽬录 + 孩⼦⽂件路径,创建⼀个新的 File 实例根据⽂件路径创建⼀个新的 File 实例,路径可以是绝对路径或者相对路径根据⽗⽬录 + 孩⼦⽂件路径,创建⼀个新的 File 实例,⽗⽬录⽤路径表⽰属性修饰符及类型属性说明依赖于系统的路径分隔符,String类型的表⽰依赖于系统的路径分隔符,char 类型的表示疑问,为什么在Windonws上分隔符是\而其他系统上不是呢?

2025-10-26 23:51:00 831 2

原创 TreeMap 和 TreeSet 笔记

每个节点包含三个部分:存储的值(val)、左子节点引用(left)、右子节点引用(right)。通过构造方法初始化节点值,左、右子节点默认为 null。//存储的值(val)//左子节点引用(left)//右子节点引用(right)//通过构造方法初始化节点值对比项TreeSetTreeMap存啥单个元素(Key)键值对(Key-Value)核心能力元素自动排序 + 去重键自动排序(值可重复)排序规则元素自带或自定义键自带或自定义底层结构。

2025-10-20 21:51:02 1037 2

原创 HashTable、HashMap、ConcurrentHashMap 三者区别详解

单线程用HashMap,追求极致性能,用于单线程环境或无并发修改的场景较为合适;多线程用,兼顾安全与效率,切能在保证线程安全的同时,实现了接近 HashMap 的性能;HashTable已被时代淘汰,我觉得应该尽量避免使用。

2025-10-19 16:22:00 365 1

原创 深入理解 Java 中的 synchronized 关键字

特点:通过创建独立的锁对象,实现 “不同资源用不同锁”,避免锁竞争。适用场景:需要保护多个独立共享资源,且希望不同资源的同步操作互不干扰。//通过创建独立的锁对象,实现 “不同资源用不同锁”,避免锁竞争)。// countA专用锁// countB专用锁// 操作countA,仅锁定lockAcountA++;// 操作countB,仅锁定lockBcountB++;

2025-10-13 17:50:49 622 1

原创 Java 线程池详解:参数、流程与实战

在 Java 并发编程中,线程池是绕不开的核心组件。它通过预先创建线程并复用,避免了频繁创建 / 销毁线程的性能开销,同时能有效控制并发线程数量,防止资源耗尽。今天我们就从核心参数、工作流程和实战用法三个维度,彻底搞懂线程池。Java 中所有线程池的底层实现都是 ThreadPoolExecutor(位于 java.util.concurrent 包),它的构造方法定义了线程池的核心行为。先看最完整的构造函数:这 7 个参数决定了线程池的 “性格”,我们逐个拆解:工厂模式也是一种设计模式,和单列模式是并

2025-10-11 18:39:51 1114

原创 单例模式的两种基础实现:饿汉式与懒汉式(线程安全版)

汉式和懒汉式是单例模式最基础的两种实现,核心区别在于实例初始化时机和线程安全保障方式饿汉式通过 “类加载即初始化” 和 JVM 的线程安全机制,实现简单且性能优异,但可能浪费资源;懒汉式通过 “延迟加载” 和同步,避免资源浪费,但存在锁开销,适合低并发场景。选择时需根据实例资源消耗和并发量决定:轻量实例优先饿汉式,重量级实例且并发低时选懒汉式。这两种方式为更复杂的单例实现(如双重检查锁、静态内部类)奠定了基础,理解它们的原理是掌握单例模式的关键。

2025-09-30 17:04:50 787

空空如也

空空如也

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

TA关注的人

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