自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TDD与开发银弹

TDD

2024-12-29 08:02:11 1006

原创 JDK17、Junit5下的PowerMock平替

在升级到JDK17以及Junit5之后,原来的powermock相关的静态方法和私有方法的API接口不能使用了,给迁移代码带来了极大的阻力。其中影响最大的分别是静态公有方法的mock和私有方法的执行。于是自研了替代powerMock主要功能的代码。静态类mock:静态方法mock:私有静态不可变属性设置:私有方法唤醒:静态方法验证:本着最小程度改变之前用户习惯的原则,新建的类分别以powerMock原来的类PowerMockito和WhiteBox为名,接口也极力接近原来的定义。

2024-12-29 07:50:01 1454

原创 mapStruct使用

与lombok一同使用实战https://juejin.cn/post/6956190395319451679#heading-1https://zlvansiit.github.io/2023/05/25/mapstruct.html

2024-12-24 16:59:02 313

原创 代码突变测试与Pitest

但这时候,突变测试就能识别到这种测试代码的问题,并生成报告告诉你分支2突变测试没过,原因是,使用其他值代替分支2的返回值,对测试结果并没有影响。换言之,这样的测试代码并不能守护生产代码,可以说这样的测试代码比没有写测试更为恐怖,没写测试你可能还会有警惕心,而这样的代码,则会给人一个可怕的虚假的信心,让人身陷深渊而不自知。但是从测试代码来说,分支测试和突变测试的测试代码具有一定的重合,某种意义上来说,分支测试的覆盖分支越多,测试质量会更高,但是分支测试兴许覆盖了更多行,却未必能够通过突变测试。

2024-12-19 11:01:41 852

原创 基于Junit5的ParameterizedTest的自定义JsonFile注解实现

Junit5的ParameterizedTest提供了可以自定义注解的方式,提供参数进行测试,只需要实现ArgumentsProvider和AnnotationConsumer接口就可以了。ArgumentsProvider用于提供参数AnnotationConsumer用于提供注解细节。

2024-12-16 16:43:38 365

原创 JackSon的自定义工具类

static {

2023-06-17 11:30:09 791

原创 RabbbitMQ

消息指的是两个应用间传递的数据。数据的类型有很多种形式,可能只包含文本字符串,也可能包含嵌入对象。“消息队列(Message Queue)”是在消息的传输过程中保存消息的容器。在消息队列中,通常有生产者和消费者两个角色。生产者只负责发送数据到消息队列,谁从消息队列中取出数据处理,他不管。消费者只负责从消息队列中取出数据处理,他不管这是谁发送的数据。

2023-05-07 09:11:06 220

原创 java定时任务

成熟的java定时任务框架fill:#333;color:#333;color:#333;fill:none;

2023-04-28 18:03:24 710 1

原创 TCP及UDP协议Java实现

TCP及UDP协议TCP/IP协议族七层网络模型及其对应的TCP/IP协议TCP与UDP对比TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,提供可靠的字节流服务 ,它提供的服务包括**数据流传送、可靠性、**有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。TCP对应的是可靠性要求高的应用,

2021-08-09 23:36:43 461

原创 Java注解简析

注解注解Annotation注解基本知识注解与注释(Comment)相似,都可以为程序做出解释注解可以被其他程序读取(如编译器),注解权限控制为public注解是从jdk1.5开始引进的,之前的版本虽然也可以用,但是不能被其他程序读取注解的使用格式@注释名[(参数=参数值)],如@SuppressWarnings(value=“unchecked”)注解的使用范围package(包)class(类)method(方法)field(字段)内置标准注解

2021-08-01 16:36:24 150

原创 Java稀疏数组

稀疏数组假设有这样一个二维数组:0 0 0 0 0 1 0 2 0 08 0 0 0 0 0 9 0 6 0-5 0 0 0 6 0 7 0 0 00 0 0 0 0 0 0 0 0 02 0 0 0 0 0 0 0 5 89 0 0 0 0 0 0 0 0 0不难看出数组中有大量的 0存在,非0的值不多,仅仅12 个,但是这样的数组的大小为6*10,空间利用率仅为14/60=23.3%;于是考虑是否可以以更低的代价存储这些值。考虑使用这样一个新数组,第一行存储原数组的大小和有效值个数,

2021-07-30 00:10:38 86

原创 Java对象的初始化顺序

Java对象的初始化顺序总结来说就是:父类优先 -> static优先Java内存分配(堆、栈)

2021-07-29 23:32:22 95

原创 Java基础知识二

Java基础知识二流程控制顺序结构基本程序结构,所有算法的基础顺序执行System.out.println("java");System.out.println("is");System.out.println("a");System.out.println("language of computer");//执行时输出/*javaisalanguage of computer*/选择结构选择结构包括两种表达方式:ifif(布尔表达式)语句esle

2021-07-28 22:39:40 88

原创 Java基础知识

Java基础知识Java特性和优势简单面向对象可移植性高性能分布式动态性(反射)多线程安全健壮Java是解释型语言高级语言可分为解释型语言和编译型语言解释型就是读一句解释一句给机器执行,就像现在的实时翻译,这种语言以Java、python为主编译型就是全部转译成机器语言给计算机执行,类似翻译整本书,这种语言以C/C++为主。JDK、JRE、JVM简介JDK(Java Development kit)Java开发环境,包括JRE、JVMJRE(Java Run

2021-07-28 00:06:41 83

原创 计算机语言发展史

计算机语言发展史一个东西的发展往往都是向更简单更方便的方向,才会得到更好的发展。计算机语言也不意外。自计算机诞生以来,计算机语言共经历三个时代:机器语言直接执行,速度快,资源占用少可读性差,可移植性差,代码繁杂汇编语言革命性改变,解决人类无法读懂机器语言的问题,指令代替二进制使得表达具有抽象性,面向机器高级语言高级语言对人类更加友好,大体分为面向对象和面向过程两类;C语言(1972)是典型的面向过程的语言,c++(1982)、Java(1995)是典型的面向

2021-07-26 22:58:54 408

原创 计算机基础

系统学习Java第二天今天因为私事没有太多时间学习,但是还是要坚持写博客,毕竟我觉得无论什么时候开始,一旦开始,就别停下。计算机基础这个太多,简单来说,计算机由硬件和软件构成。硬件:CPU主板内存电源、主机硬盘显卡键盘、鼠标显示器等等其实主要构成就是输入设备、输出设备、存储器、运算器和控制器(冯若依曼结构),CPU包含运算和控制。软件系统软件,DOS,Windows、Linux、Unix、Mac、Android、iOS、

2021-07-25 23:51:36 120 2

原创 Markdown学习-Typora

Markdown学习标题#加空格,几个#就是几级标题,快捷键ctrl+数字(多数快捷键与Word一样)字体粗体:字两边加两个*或ctrl+b斜体:字两边加一个*或ctrl+i斜粗体:字两边加三个*中划线:字两边加两个~引用字前加大于分割线三个-,三个*图片!+ ctrl+k 或者!+[]+()[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4lynPlxK-1627111334734)(C:\Users\lenovo\Pictures\Ca

2021-07-24 17:28:01 114

空空如也

空空如也

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

TA关注的人

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