自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 热部署 和 热加载

有了热部署不仅能大幅度节省重启项目的时间,而且能够在编程时避免中断思路,将更多的时间用于Coding和思考问题。

2023-12-22 16:39:49 1304

原创 单元测试方法论(终篇)

山高路远车难骑,精疲力尽人易弃。多少妙峰登顶者,又练心境又练力!

2023-07-04 10:29:02 224

原创 单元测试方法论(上)

学习上一定要追求心得体会,事业上一定要贵以专注精深。做技术就是这样,一件事如果做到了极致,就必然会有所心得体会。

2023-07-04 10:28:04 172

原创 单元测试方法论(下)

学习上一定要追求心得体会,事业上一定要贵以专注精深。做技术就是这样,一件事如果做到了极致,就必然会有所心得体会。

2023-07-04 10:26:17 427

原创 Java单元测试

PowerMock作为一个优秀的单元测试框架,是一个扩展了其它如EasyMock等mock框架的、功能更加强大的框架集合。本文从准备环境入手,通过常用的spy、mock、when、verify语句和参数匹配器、私有属性、私有方法、主要注解的介绍,基本对有一个大概的了解,并阐述了单元测试的个人观点。

2023-06-30 12:15:00 1244

原创 mysql 优化

1,当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施。2,查询优化 主要会用到 2 个MySQL 提供的功能,一个是慢查询log,一个是查询计划分析

2023-06-28 17:15:49 295

原创 mysql 基础架构与组件

简单来说 MySQL 主要分为 Server 层和存储引擎层,Server 层:主要包括连接器、查询缓存、分析器、优化器、执行器等,存储引擎: 主要负责数据的存储和读取

2023-06-28 14:00:00 352

原创 mysql 索引

MySQL索引使用的数据结构主要有BTree索引 和 哈希索引。对于哈希索引来说,底层的数据结构就是哈希表,因此在绝大多数需求为单条记录查询的时候,可以选择哈希索引,查询性能最快;其余大部分场景,建议选择BTree索引。

2023-06-28 12:00:00 278

原创 事务与隔离级别

文章介绍了事务四要素:原子性、一致性、隔离性、持久性,和四种不同的数据库隔离级别:读未提交、读已提交、可重复读、序列化的关系。

2023-06-25 22:30:00 82

原创 mysql 常见锁类型

MySQL 将锁分成两类:锁类型(lock_type)和锁模式(lock_mode)。锁类型有表锁和行锁两种类型,当然行锁还可以细分成记录锁和间隙锁等更细的类型,锁类型描述的锁的粒度,也可以说是把锁具体加在什么地方;而锁模式描述的是到底加的是什么锁,譬如读锁或写锁。锁模式通常是和锁类型结合使用的。

2023-06-25 22:15:00 1209

原创 分布式幂等问题解决方案

如果有一个查询接口是查询订单的状态,状态是会随着时间发生变化的,那么在两次不同时间的查询请求中,可能返回不一样的订单状态,这个查询接口还是幂等接口吗?

2023-06-24 12:00:00 758 1

原创 分布式锁 实现

从分布式锁的使用场景出发,通过对 MySQL实现、ZooKeeper实现、Redis实现 多种实现方式比较,对各自的问题进行分析,可以找到最适合你的解决方案。

2023-06-21 12:00:00 87

原创 zip 压缩后解压名称不一致问题

场景:压缩若干文件后得到zip文件,后来根据需求要修改zip文件名称,再解压后发现解压后文件夹名称与zip不一致,对于程序来说,可能造成文件路径查不到的问题。概念:一般来说ZIP压缩分两种:文件夹压缩,文件压缩

2023-03-07 11:36:53 2552 1

原创 轮询、长轮询、长连接、websocket

本文着重对 轮询、长轮询、长连接、websocket进行介绍

2022-04-29 10:31:40 2918 1

原创 分布式 锁

本文从分布式锁的使用场景和要求着手分析,得到常见的4种实现分布式锁的方案1、基于数据库表 2、基于数据库排他锁 3、基于分布式缓存 4、基于zookeeper

2022-04-28 17:31:49 107

原创 Java 锁

本文在不同场景下对Java中的所进行分类并结合源码进行解析,主要分为 1)乐观锁 VS 悲观锁 、 2)自旋锁 VS 适应性自旋锁 、 3)无锁 VS 偏向锁 VS 轻量级锁 VS 重量级锁 、 4)公平锁 VS 非公平锁 、 5)可重入锁 VS 非可重入锁 6) 独享锁 VS 共享锁

2022-04-28 11:24:31 114

原创 幂等性 详解

文章介绍了幂等的数学概念、业务概念和概述,然后从应用场景出发,提出5种解决方案。

2022-04-26 11:30:36 10379

原创 Redis 主从复制与集群搭建

文章对主从复制 的五种方式详细介绍原理和操作方式,然后对集群的搭建步骤进行详细描述。

2022-04-25 10:49:42 293

原创 Redis 事务和持久化

详细描述redis的事务和 redis持久化方式,包括 RDB持久化时的保存策略、dump.rdb生成的时机、手动保存、 redis.conf配置、rdb的备份、 rdb的恢复和 rdb优缺点,还有 AOF持久化时的文件故障备份、恢复、同步频率设置、Rewrite、AOF实现重写的机制、重写时机和优缺点。

2022-04-25 10:26:17 101

原创 Redis 数据类型和详解

文章详细描述了在redis中string、list、set、hash、zset五种数据类型的基本方法、应用场景、优缺点...

2022-04-24 14:11:23 1075

原创 Redis 安装与配置

本文包含redis的介绍、特点、安装过程、常用配置和其他内容...

2022-04-24 10:19:21 217

原创 Mock 实战

内容包括 初始化、 设置测试桩(Stubbing)、 Stubbing连缀调用、 Mock方法的默认值、 参数匹配器(matchers)、 有返回值的方法demo、 void方法demo、 void方法的mock

2022-04-19 17:47:51 1542

原创 Mockito 常见操作

文章包括 验证行为、 做测试桩(Stub)、 参数匹配器(matchers)、 验证函数的调用次数、 通过Stub抛出异常、验证执行顺序、 简化mock对象的创建、doReturn()、doThrow()、doAnswe...

2022-04-19 17:45:50 2420

原创 手机上使用油猴插件 Tampermonkey

可以安装油猴的手机浏览器 火狐浏览器(Firefox) Kiwi 浏览器 Yandex 浏览器优点与缺点 :火狐浏览器 UI 互动效果差一些,Kiwi 浏览器 UI 互动更爽一些, Yandex 浏览器俄式风格,有些难以驾驭,需要习惯一下 kiwi 插件显示最舒服,可以显示出图标 三款浏览器均能够实现所选 3 个不同网站脚本的功能 ...

2022-04-18 11:29:20 82991 1

原创 Git 进阶(代码暂存)

如果你想要切换到另一个分支,但不想要将当前分支的变更创建一次提交,此时就可以用到代码暂存 git stash命令。git stash将未完成的修改保存到一个栈上,而你可以在任何时候重新应用这些改动。也可以从暂存创建一个分支...

2022-04-11 18:34:25 927

原创 Git 进阶(合并与变基)

在 Git 中整合来自不同分支的修改主要有两种方法:merge 以及 rebase。整合分支最容易的方法是 merge命令。 rebase合并又叫做 变基, 你可以使用 rebase命令将提交到某一分支上的所有修改都...

2022-04-11 18:21:36 6646

原创 Git 命令

常用命令克隆项目:git clone xxx.git 创建分支:git branch daily/1.0.0切换分支:git checkout daily/1.0.0 也可以定制你的快捷命令,体验别名的便捷

2022-04-11 15:19:09 48

原创 Git 入门与安装

Git是一个分布式的代码版本管理工具。类似的常用工具还有SVN,CVS。Git相比SVN,CVS,最大的特点也是优点在于提供分布式的代码管理。这不是说SVN等不具有该功能,但就目前来看,Git更完善,而且也越来越多地被人们所接受。Git 有一个本地仓库的概念,提交代码首先是提交到本地仓库,然后再执行push命令后,才会真正push到远端的仓库。这点和svn有极大的不同。安装(以Mac为例)这里有详细的安装内容https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD

2022-04-11 14:19:24 300

原创 Java常用 工具类

Java常用工具类 - 集合工具类 - 文件工具类 - 随机字符串生成器 - String工具类

2021-12-22 10:45:19 7968

原创 Java 幂等 实现

基于 redis 实现API操作幂等,为更新类接口添加特定的注解,增加幂等参数ClientToken,在基于ClientToken唯一的情况下先检查redis里是否有响应的结果,否则去请求service层再将结果放入redis,来达到请求幂等的效果。

2021-12-21 11:20:06 1765

原创 Java 时间 工具类

日期转换 Date -> String、获取当前日期的本周一是几号、获取当前日期周的最后一天、根据日期区间获取月份列表、根据日期获取年度中的周索引、获取当前时间所在周的开始日期、时间工具类

2021-06-15 11:28:18 1728 1

原创 Java8 stream流之分组 groupingBy 的使用

使用stream流可以让我们的代码看上去很简洁,本文举例了 按照班级分组、分组再过滤、统计分组后人数、嵌套分组、分组排序...

2021-06-10 10:22:18 42630 6

原创 常用Java8代码汇编(二)

Stream流主要用于对集合的数据进行加工处理,可以将需要处理的元素集合看作一种流,流在管道中传输,并且在管道的节点进行处理,比如 筛选,排序,聚合 对于流的操作,主要为三个步骤,流的创建 中间操作 最终操作

2021-04-19 17:25:20 138

原创 Java 分布式锁之redis代码实现

分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇将介绍第二种方式,基于Redis实现分布式锁。首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:1,互斥性。在任意时刻,只有一个客户端能持有锁。2,不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。3,具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。4,解铃还须系铃人。加锁和解锁必须是同

2021-03-09 16:14:16 114

原创 Java 分布式锁之redis应用解析

在系统中修改已有数据时,需要先读取,然后进行修改保存,此时很容易遇到并发问题。由于修改和保存不是原子操作,在并发场景下,部分对数据的操作可能会丢失。在单服务器系统我们常用本地锁来避免并发带来的问题,然而,当服务采用集群方式部署时,本地锁无法在多个服务器之间生效,这时候保证数据的一致性就需要分布式锁来实现。

2021-03-09 15:57:25 250

原创 (二)Spring aop 使用

AOP为(Aspect Oriented Programming)面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

2021-03-05 15:44:17 116

原创 常用Java8代码汇编(一)

常用代码汇编获取某个list属性的值(采用Java8的Optional避免空)List students = Optional.ofNullable(condition.getStudents()).orElse(new ArrayList<>());为某个set属性赋值man.setValues(Stream.of(“123”,“456”,“789”).collect(Collectors.toSet()));为某个List属性赋值Info.setValues(Arrays.asL

2020-09-15 11:36:33 202

空空如也

空空如也

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

TA关注的人

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