自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(73)
  • 资源 (3)
  • 收藏
  • 关注

原创 【面试不用背】作为一个CRUD工程师,你必须要知道的MySQL知识

目录1 写在前面的话2 MySQL 架构设计2.1 程序是如何跟 MySQL 打交道的2.2 程序是如何跟 MySQL 打交道的图解2.3 服务端流程分析2.4 服务端流程图解3 InnoDB 架构设计3.1 设计思路3.2 图解4 MySQL 物理数据模型4.1 数据在磁盘上的存储格式4.2 null列表与数据头4.3 行溢出5 BufferPool5.1 free 链表5.1.1 概念5.1.2 缓存页 hash 表5.1.3 图解5.2 flush 链表5.2.1 概念5.2.2 图解5.3 LRU

2022-02-14 02:28:58 12307 21

原创 写给想入门单元测试的你

单元测试入门一、为什么要进行单元测试二、单元测试需要引用的jar包三、单元测试解析与技巧1、单元测试类注解解析2、常用断言3、有返回值方法的测试4、无返回值方法的测试四、单元测试小例(1)dao层的单元测试(2)service层的单元测试(3)controller层的单元测试五、其他六、附录一、为什么要进行单元测试首先我们来看一下标准的软件开发流程是什么样的从图中我们可以看到,单元测试作为开发流程中的重要一环,其实是保证代码健壮性的重要一环,但是因为各种各样的原因,在日常开发中,我们往往不重视这一步

2022-02-03 21:38:37 755

原创 【从源码级别理解让人抓狂的@Transactional注解】

@Transactional入门

2022-01-27 15:22:11 1171 4

原创 JVM从入门到坚持

楔子在生产开发中,20%的 JAVA 知识,就能完成 80%的工作。但是区分高手与新手的差异往往就在那 20%,JVM 就属于这 20%的知识,本篇文章准备和大家分享 JVM 入门的相关知识,可以理解为简单的导论。从 hello world 的运行开讲学习一门新语言一般都是从简单的 hello world 开始,所以,咱们先准备一个 HelloWorld.java 的文件。class HelloWorld { public static void main(String[] args) {

2022-01-24 13:14:13 638

原创 不会吧,都2023年了你还不会JavaStream?

本文主要介绍了Java Stream的一些基本概念和常见使用例子。方便新手学习,和老手查找巩固。

2023-09-15 13:03:37 163

原创 不会吧,都2023年了你还不会Lamda表达式?

Lambda表达式是一种匿名函数,它允许我们将函数作为参数传递给其他函数或者作为返回值使用。在Java中,它是Java 8引入的一个新特性。Lambda表达式通常用于实现函数式接口,例如Runnable、Callable、Comparator等接口。函数式接口是Java 8引入的一个新特性,它允许我们使用Lambda表达式来简化代码。函数式接口是只有一个抽象方法的接口,可以使用Lambda表达式来实现该接口的方法。注:@FunctionalInterface注解仅是标注作用,可以不写。

2023-09-15 10:38:15 165

原创 如何快速构建你的AI开放平台?一步步教你!

执行命令和配置,3分钟生成你自己的ai聊天机器人,更多玩法请参考开源项目文档。

2023-09-14 15:33:29 694

原创 【Spring源码解析】一文读懂Spring注入模型:开发者必备知识

首先我们要明确,注入模型和注入Bean的方式不能混为一谈。从Spring的官网我们可以知道,Spring注入bean的方式有两种,一种是通过构造方法进行注入,另外一种是通过setter方法进行注入。说简单一点就是注入Bean的方式是一种注入bean的策略,而注入模型是Bean的一种属性(其实是BeanDefinition的属性),他会影响bean的一些行为。

2023-09-13 17:46:22 137

原创 【架构思想】告别繁琐的多选值存储,MySQL位运算带你飞!

工作中经常遇到多选值存储问题,比如某个配置项是星期一到星期天的任意组合。再比如用户修改密码的方式有邮箱验证、手机短信验证、回答密保问题等等,一个用户有可能只开启了其中某几种方式。如果数据范围有限,且变更不频繁的场景,可以考虑使用位与运算解决多选值存储的问题。

2023-09-12 17:15:14 439

原创 【大数据基石】Hadoop环境搭建

本篇文章是基于Centos7搭建的。

2023-06-01 16:13:29 472

原创 手把手带你理解Spring日志原理

✨这里是第七人格的博客✨小七,欢迎您的到来~✨🍅系列专栏:【Spring源码解析】🍅✈️本篇内容: Spring日志原理✈️🍱本篇收录完整代码地址:https://gitee.com/diqirenge/spring-book/tree/master/spring-log🍱。

2023-04-18 00:04:10 1028 1

原创 【工作小札】利用动态数据源实现Sass的一种思路(内含完整代码示例)

✨这里是第七人格的博客✨小七,欢迎您的到来~✨🍅系列专栏:【工作小札】🍅✈️本篇内容: 利用动态数据源实现Sass化✈️🍱。

2023-04-13 16:38:35 2184

原创 【开发工程师的运维小知识】docker安装gitlab

✨这里是第七人格的博客✨小七,欢迎您的到来~✨🍅系列专栏:【开发工程师的运维小知识】🍅✈️本篇内容: docker安装gitlab✈️🍱本篇收录完整代码地址:无🍱。

2023-04-05 01:09:03 614

原创 【开发工程师的运维小知识】 linux安装jdk

✨这里是第七人格的博客✨小七,欢迎您的到来~✨🍅系列专栏:【开发工程师的运维小知识】🍅✈️本篇内容: linux安装jdk✈️🍱本篇收录完整代码地址:无🍱。

2023-04-04 23:48:20 69

原创 【开发工程师的运维小知识】docker安装nacos

✨这里是第七人格的博客✨小七,欢迎您的到来~✨🍅系列专栏:【开发工程师的运维小知识】🍅✈️本篇内容: docker安装nacos✈️🍱本篇收录完整代码地址:无🍱。

2023-04-04 20:01:58 240

原创 【工作小札】自定义classloader实现热加载jar

我们这里定义,需要加载的jar的结构和maven打包出来的jar一致。我们编写一个测试jar如下:执行package命令获取jar包:sheep-web-demo-custom-classloader-jar-1.0-SNAPSHOT.jar/*** 自定义jar/*** jar文件/*** 源路径} }

2023-04-03 11:38:05 2379

原创 【工作小札】apache-dubob泛化调用小例

小七最近在开发网关应用,因为下层业务系统之间都是dubbo协议通信,不再提供http接口,所以考虑在网关层需要做一下协议转换,即http转dubbo。参考dubbo官网,发现dubbo提供了泛化调用来解决这个场景的问题。因为小七公司已经从对接规范上,杜绝了多参数调用的情况,所有这里小七就只列举几种常见的单参数调用例子。{“data”:{“name”:“第七人格”,“id”:“1”,“class”:“xxxx”}}因为泛型存在类型擦除的情况,所以我们在进行泛化调用的时候,需要申明泛型类型。

2023-03-31 11:23:20 1671

原创 【开发工程师的运维小知识】 linux安装mysql

【开发工程师的运维小知识】 linux安装mysql

2023-03-30 16:11:53 608

原创 【开发工程师的运维小知识】docker安装zookeeper

【开发工程师的运维小知识】docker安装zookeeper

2023-03-30 15:57:18 356

原创 【开发工程师的运维小知识】docker安装redis

【开发工程师的运维小知识】docker安装redis

2023-03-30 15:52:39 496

原创 【开发工程师的运维小知识】linux安装docker

linux安装docker

2023-03-30 15:49:36 527 1

原创 参考@NotBlank实现自定义注解校验器

最近小七在做接口对接的时候,发现某些接口的同一个字段,可能需要做相同的校验。比如,在用户的注册和更新接口都需要判断用户的证件类型是否合法,许多小伙伴们的做法就是直接在代码里写if-else,这种在屎山拉屎的行为,小七实在是难以接收,想着看看能不能在上面雕雕花。

2022-12-09 22:59:24 2081

原创 每天一道算法题——队列基础

队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。说人话就是,队列是一种特殊的链表或者数组,就像排队买票,先来的先买,后来的后买,不允许插队,所以只有最早进入队列的元素才能最先从队列中删除,故队列又称为先进先出(FIFO—first in first out)线性表。底层结构为数组,所以我们需要定义一个数组来存储数据。往数组里面放数据,我们需要一个大小的属性。

2022-10-24 12:09:59 1353 1

原创 每天一道算法题——栈基础

栈(Stack)又名堆栈,它是一种基于先进后出(FILO-First In Last Out)且运算受限的线性表。说人话就是,栈是一种特殊的链表或者数组,就像咱们叠碗一样,放的时候是一个一个往下放,拿的时候是从上往下一个个拿,也就是说我们仅仅只能操作表尾的数据。底层结构为数组,所以我们需要定义一个数组来存储数据。往数组里面放数据,我们需要一个大小的属性。大小为0,则表示栈为空直接往数组里面添加数据栈的大小增加1数据大小减少1栈顶数据置为0。

2022-10-11 02:27:36 780

原创 每天一道算法题——链表基础

链表通过指针将一组零散的内存块串联在一起。其中,我们把内存块称为链表的“结点”。为了将所有的结点串起来,每个链表的结点除了存储数据之外,还需要记录链上的下一个结点的地址。结点除了在·下一个结点的地址我们的单向链表只需要最简单的2个元素,头和大小即可初始新化节点新节点的下一个节点的地址 赋值为 原本head的地址新的节点成为head获取当前指定位置的节点保证不断链(1)新加的点指向后(2)把当前的点指向新加的点把head的点指向head的下一个点获取当前指定位置的节点保证不断链。

2022-10-09 22:30:25 710

原创 【Spring】SpringIOC基础

SpringIOC基础

2022-10-01 23:44:11 728 1

原创 每天一道算法题——数组基础

数组(Array)是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。数组是在程序设计中,为了处理方便, 把具有相同类型的若干元素按有序的形式组织起来的一种形式。这些有序排列的同类数据元素的集合称为数组。

2022-09-30 00:30:37 553

原创 工作流实战之Activiti7

本文主要介绍了 Activiti 的相关使用与集成,适合想要学习 Activiti 的读者食用。Activiti 是目前使用最为广泛的开源工作流引擎之一,在小七 2017 年走向程序员这一条不归路的时候,它就已经是开源工作流引擎的老大哥了。学习一门新技术/新框架,我们第一件事就是从它的官网入手,下面贴出 Activiti 的官网从官网的描述,我们可以知道 Activiti 是领先的轻量级的、以 java 为中心的开源 BPMN 引擎,可以支持现实世界的流程自动化需求。 Activiti Cloud 是新一代

2022-08-17 01:44:26 5822 2

原创 尊敬的面试官,我该如何告诉你我精通Spring(一)初入Spring

尊敬的面试官,我该如何告诉你我精通Spring

2022-03-14 18:54:47 2598 2

原创 【源码】LinkedList源码学习笔记

楔子上一次,小七和大家一起学习了ArrayList源码,今天再和大家一起分享下LinkedList的源码。基本数据结构LinkedList顾名思义,linked链表,他也就是基于链表实现的,而且是双向链表。所以他具有双向链表的优缺点。缺点不太适合在随机的位置,获取某个随机的位置的元素,比如LinkedList.get(10),这种操作,性能就很低,因为他需要遍历这个链表,从头开始遍历这个链表,直到找到index = 10的这个元素为止。优点非常适合各种元素频繁的插入里面去,因为不断的把新的节点

2022-03-13 08:46:37 373

原创 【源码】ArrayList源码学习笔记

目录楔子一、基本数据结构1、缺点2、优点二、核心方法的原理0、基础构造方法1、add方法源码2、set方法源码3、get方法源码4、remove方法源码楔子对于Java开发者来说,不管是初级、中级,还是高级,一定都曾经被问道Java集合包里的东西,而ArrayList作为集合包中重要的一员,出现的频率也非常高,今天小七就从源码的角度,重新分析学习下ArrayList。一、基本数据结构ArrayList顾名思义,array就是数组的意思。在java中的数组,都是定长数组,所以ArrayList会有定长

2022-03-12 17:19:20 999

原创 【源码】HashMap源码学习笔记

目录楔子基本数据结构核心成员变量解析hash算法从put看JDK优化后的hash算法hash寻址算法hash冲突hash冲突时的链表处理hash冲突时的红黑树优化扩容与rehash算法楔子HashMap作为Java集合里重要的一环,不仅在生产中有着超高频率的使用,在面试中更是被经常问起,所以学习Hash的源码对Java开发人员来说是很有必要的。基本数据结构JDK 1.8以后,hashmap的数据结构是,数组 + 链表 + 红黑树。核心成员变量解析/** * The default init

2022-03-03 10:50:46 636 5

原创 常用唯一ID生成方案分析(从单机到分布式)

本文主要对常见的几种唯一ID生成方案做了分析,包括UUID、业务规则生成、数据库生成、Redis生成、雪花算法及其开源框架实现。

2022-03-02 00:49:01 2890 8

原创 ShenYu网关数据同步源码分析

目录admin数据同步从SelectorController讲起发布事件ConfigGroupEnumDataEventTypeEnumDataChangedEventDispatcher配置解析gateway数据同步ShenyuWebsocketClientWebsocketDataHandlerAbstractDataHandlerCommonPluginDataSubscriberBaseDataCache配置解析验证猜想增量数据同步全量数据同步总结当在后台管理系统中,数据发生了更新后,如何将更新的

2022-02-08 11:50:47 987

原创 手把手教你如何下载编译Spring源码

目录楔子Spring 源码下载github 下载gitee 下载将项目导入开发工具选择版本为 5.2.x修改 IDEA 中 Gradle 配置如下确认IDEA中的Kotlin是否生效添加阿里云镜像Reload项目耐心等待编译完成新建Gradle模块楔子学习 Spring 源码有两种方式,一种是直接引入 Spring 依赖,读静态源码或者调试;一种是自己编译 Spring 源码。小七觉得如果想要更好的理解 Spring 源码,自己编译 Spring 源码是很有必要的,一方面我们可以修改源码,方便调试验证我

2022-02-04 20:29:04 13971 7

原创 一年工作经验的我,居然被问到了CAS

楔子前一篇文章,我们介绍了 synchronized,知道了 synchronized 可以解决某些数据的原子性问题,本篇文章我们以 AtomicInteger 为切入点,继续学习 CAS 无锁化的知识。使用 synchronized 解决 i++的原子性使用 synchronized 关键字,保证数据原子性public class Test { static int synchronizedValue = 0; public static void main(String[]

2022-01-24 12:48:17 320

原创 Java人的第一把锁——synchronized

楔子上一篇文章,我们学习了volatile关键字,这边文章我们继续学习并发编程中常用的另一个关键字——synchronized。synchronized使用方法首先我们来看synchronized常见的几种使用方法。使用synchronized(this)修饰代码块class SyncThread implements Runnable { private static int count; public SyncThread() { count = 0;

2022-01-24 12:44:39 518

原创 并发概念太多?不要怕,让我们从volatile说起

volatile解析

2022-01-24 00:17:30 515 2

原创 几分钟告诉你怎么创建多线程以及什么是并发编程

什么是线程java.lang.Thread类中有这样的明确定义:线程是程序中执行的线程,Java虚拟机允许程序同时运行多个执行线程。比如执行以下main方法,就是执行了一个线程。 public static void main(String[] args) throws InterruptedException { System.out.println("=========start========"); System.out.println("=========

2022-01-23 23:59:11 183

原创 【工作小札】注解 AOP实现加解密和验签

一、楔子最近小七接到一个任务,需要针对现有的一些接口,按照第三方的要求进行加解密、签名验签等升级。二、改造思路1、硬编码直接改变以前方法的签名和结果,并且在方法里耦合加解密验签等逻辑以前的代码public Result getXXXX(@Valid @RequestBody GetSignParamResp request){ // todo}升级后的代码public String getXXXX(HttpServletRequest request){ // todo}优

2021-08-18 22:48:04 780

jenkins-2.16

官网下载太慢,现提供官网下载的war版本,可以直接jar启动,也可以放在tomcat等容器中,简单方便,分享给有需要的同学们

2019-01-21

Axure RP 7.0 教程

Axure RP 7.0 教程

2017-04-09

apache-tomcat-8.5.6-windows-x64.zip

tomcat8.5.6,适用于windows64位,解压即用,无需配置

2013-08-17

空空如也

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

TA关注的人

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