置顶文章

2.8k 3 分钟

# 【基础算法】排序算法 (一) 对数组对象进行排序,获取” 有序 “数组对象。并非纯数字 # 前言说明 排序算法有八大,由简到难,每当别人问起来时,我却知其然不知其所然,我能看懂这个排序算法实现代码,但我应用起来却显得很艰难,最经典的是问过很多人冒泡排序怎么实现,他能讲的头头是道,但让他一写却频频出错,一问冒泡、选择、插入有什么区别就是懵逼数下的懵逼果,一百度一看就懂,过几个小时再问就对自己记忆力产生了怀疑。所以我想用自己的方式区分、总结、讲述八大排序算法,如有不懂欢迎评论。 # 名词解释 例子:数组 [4.2,2,6,4.1],比较的是整数部分,会发生 4.2 == 4.1...

精选分类

文章列表

3.1k 3 分钟

# 修复低版本 Spel 语句 BigDecimal 计算的问题 在使用低版本的 spring-expression 模块时就会导致在计算 BigDecimal 对象时转 int 导致结果错误 因为内部并未支持 BigDecimal 类型判断,导致走了 else 使用了 int 类型做计算 # 起因 因为一系列事情导致某个功能需要迁移到另一个系统,但因为迁移进去的系统 Spring 版本偏低,在测试的时发现使用的 Spel 语句处理数据有时会计算错误,经排查确认在这个低版本 spring-expression:3.2.8.RELEASE 版本不能支持 BigDecimal...
3.6k 3 分钟

# 设计原则理解记录 (一) 设计模式与设计原则都是为了提高代码复用性,维护性,可读性。但设计模式往往只实现一种原则或多种原则的整合,也就是说设计原则可能有多种设计模式实现。需要注意设计原则再实际开发中并不能做到完全遵守,往往是打破一些原则,遵守一些原则,来实现设计的合理性。所以看情况分析 # 简述 本章主要讲解七大设计原则中容易理解的三个原则,他们是单一职责原则、开闭原则、接口隔离原则。 # 单一职责原则 原则的名字就是这个原则想表达的观点,这个原则应该是最好理解的原则了,但并不意味着它实现起来很简单。对我们而言在实现这个原则最关心的应该是” 范围...
5.8k 5 分钟

# ThreadPoolTaskExecutor 线程池低感知池透传参数实现.md ThreadPoolTaskExecutor 线程池是一个非常好用的线程,我们可以通过装饰器设计模式为他拓展贯穿业务链路的参数,透传时使用 slf4j MDC 还可以直接输出一些记录到日志里面 # 技术简述 ThreadPoolTaskExecutor 一个 Spring 推荐的线程池,Spring 为其提供拒绝策略和处理流程,底层调用 ThreadPoolExecutor。 slf4j MDC MDC...
9.2k 8 分钟

# Java 实现分布式 Redis 限流记录 本章将简单记录 Redis 分布式限流实现,还有很多不懂的地方先记录 # 背景 Spring Framework 3.2.8.RELEASE 版本 Jedis 2.72 版本 (2.6 版本 Jedis 就支持 Lua 脚本调用了,方法是 eval ) 因为 Redis 的使用是需要多个数据源,所以整体 Redis 的限流并未向网上常见的通过 Spring 的 redisTemplate 这种方式进行实现,甚至都没引入 spring-data-redis 这个包,所以实现仅使用了 Jedis 依赖包提供的。 #...
3.7k 3 分钟

# 计算机二进制运算与实际应用 # 正整数转二进制,负整数转二进制,小数转二进制 在说明换算之前,先介绍一下次方和负次方的概念: ^ 在这里为幂等 不是位运算符的异或 2^2 = 2×2 = 4 // 次方2^-2 = 1÷2^2 = 1÷4 = 0.25; // 负次方# 1,正整数转二进制 在计算机中存储字节是定长的,即我们 8、16、32 位等等,6 的二进制位为 110,但如果在 8 位计算机中是 00000110,高位补零 6/2 = 3 // 余数 03/2 = 1 // 余数 11/2 = 0 // 余数 1// 所以值为 110# 2,负整数转二进制 取反就是把 1...
6.4k 6 分钟

# 【数据结构】平衡二叉树 (AVL 树) 怎么实现平衡 本篇采用 JAVA 语言简述 # 简述 AVL 是一种能自我调节的平衡二叉树,它相比与普通二叉树新增,删除操作复杂,但可以避免一些极端情况。 # AVL 树是如何保持平衡的 是通过旋转保持左右节点的平衡,一共有四种旋转方式,根据不同的插入使用不同的旋转方法。 词义解释:上根...
6.8k 6 分钟

# 防 API 重放攻击前后端完整设计 信息安全是一个永久的话题,一切信息安全措施与防范都是在加大不法犯罪的成本。而防 API 重放攻击就是是一项做了比没做好的安全功能。 # API 重放攻击是什么 API 重放攻击(Replay Attacks)又称重播攻击、回放攻击,这种攻击会不断恶意或欺诈性地重复一个有效的 API 请求。攻击者利用网络监听或者其他方式盗取 API 请求,进行一定的处理后,再把它重新发给认证服务器,是黑客常用的攻击方式之一。 # 例子 HTTPS 协议下:a 用户向 A 服务发起私钥申请 A 服务校验请求携带的凭据等信息确认没问题发放私钥,这时请求响应信息将发送给...
15k 14 分钟

# 通过 AOP 记录用户行为日志 操作日志几乎存在于每个系统中,而这些系统都有记录操作日志的一套 API。操作日志和系统日志不一样,操作日志必须要做到简单易懂。所以如何让操作日志不和业务逻辑耦合,如何让操作日志的内容易于理解,让操作日志的接入更加简单?本文将通过 Spring+AspectJ 的 AOP 实现方式解决以上问题。 #...
3.9k 4 分钟

# Java 企业微信回调配置 企业微信 API 文档地址:https://open.work.weixin.qq.com/api/doc/90001/90143/91116 # 获取 Token 和 EncodingAESKey 登录企业微信后台。 1:点击右下角图标打开网页进入 2:打开工作台,打开应用,点击右上角图标进入 (图标和下图右下角图标一样) 打开需要配置的应用,点击 启用API接收 随机生成 Token 和 EncodingAESKey # 准备 URL 接口 两个接口,相同路径,一个 GET 一个 POST 请求。上面调用的是 GET 请求判断 URL...
5k 5 分钟

# B 站网页版怎么看 B 站港澳台 # 浏览器安装 TamperMonkey 插件 推荐使用 Windows 自带的 Microsoft Edge。因为不需要翻墙即可访问。 # TamperMonkey 插件安装解除 B 站区域限制脚本 打开 [解除 B 站区域限制](解除 B 站区域限制 (greasyfork.org)) 链接点击安装此脚本 # 配置脚本代理服务器 公共解析服务器 选一个用于解析,建议自行搭建一个用,一个月使用量不高是免费的,还安全不会意外挂掉,速度非常 nice...