最近突然想起来,之前圈里流行过一阵搞热力图的热潮,当时比较忙,就没参与,最近突然就想到了这个事情。 一开始就想着仿照github的样式做一个热力图,大概需求就是可以按照时间、文章类型显示对应的热力图。 完事之后发现比较空旷: 右侧的留白太多了,不好看。然后就简单的搞了一些统计放进去填充了一下。 统计代码分两部分(一开始 […]
最近突然想起来,之前圈里流行过一阵搞热力图的热潮,当时比较忙,就没参与,最近突然就想到了这个事情。 一开始就想着仿照github的样式做一个热力图,大概需求就是可以按照时间、文章类型显示对应的热力图。 完事之后发现比较空旷: 右侧的留白太多了,不好看。然后就简单的搞了一些统计放进去填充了一下。 统计代码分两部分(一开始 […]
前几天逛博客,看到大家的博客都有很多好玩的页面,比如Hary大佬的博客中有一个互动排行榜页面。 还有皮总的博客皮皮社上面的评论用户等级。 感觉大家的网站都很有趣,于是也打算自己实现一个评论等级排行榜,所以就写了一个WordPress插件。 插件主要功能如下: 统计用户评论数 通过简码的方式展示评论用户排行榜 简码实现的 […]
看到大家的博客评论下面都带有UserAgent信息,还有地理位置信息,一直都很羡慕,奈何网上苦寻插件不见。要么就是插件年久失修,要么就是直接主题集成,无一我想要的。昨天又想起这事,心痒难耐,遂决定自己敲一个出来(其实是AI代笔)。 首先看了下WordPress的评论表,发现UserAgent和用户IP都存的有,这就很方 […]
作为Java生态2025年的重磅更新,JDK 25不仅是继JDK 21后的又一长期支持版本(将获得至少8年Oracle商业支持),更凭借18项新特性实现了开发效率、性能与安全性的全面突破。其中5项AI相关功能、6项正式转正特性,以及对并发、内存的底层优化,正在重新定义Java在云原生、大数据与AI领域的竞争力。本文将结 […]
Kafka 抛弃 Zookeeper(引入 KRaft 模式)是为了解决长期依赖 Zookeeper 带来的性能瓶颈、架构复杂度、可扩展性限制等核心问题。这一变革并非否定 Zookeeper 的价值,而是 Kafka 作为高吞吐消息系统,在规模和性能需求爆发式增长后,对自身架构的一次“去耦合”与“性能重构”。 一、Zo […]
前几天在做代码Review的时候,同事指出了一个让我震惊的问题:我们项目中满天飞的 @Autowired 注解,居然不是Spring官方推荐的最佳实践!更让人意外的是,Spring官方文档悄悄地在多个地方暗示开发者应该优先使用 @Resource而不是@Autowired。 这个发现让我深挖了Spring依赖注入的底层 […]
1. 前端防抖与按钮禁用(辅助手段) 原理:通过JavaScript限制用户频繁点击,如提交后禁用按钮或添加防抖延迟。 优点:简单易实现,减少无效请求。 缺点:无法防止绕过浏览器的请求(如API工具直接调用)。 示例: let isSubmitting = false; function submitForm() { […]
背景 正常来说,修改版本号使用mvn versions:set -DnewVersion=1.2.3-SNAPSHOT命令即可,不过貌似本地环境有问题,使用命令一直失败,所以想着搞一个通用的、不依赖maven的脚本。 脚本 完整脚本如下: #!/bin/bash NEW_VERSION="1.2.3-SNAP […]
在JVM(Java虚拟机)参数中,-D 是一个非常重要的选项,用于在启动Java程序时设置系统属性(System Properties)。这些属性可以在程序中通过 System.getProperty() 方法访问,主要用于动态配置应用行为、传递环境变量或自定义参数。 一、核心作用 -D 的作用是在JVM启动时设置系统 […]
一、核心区别 维度 spring.factories AutoConfiguration.imports 文件路径 META-INF/spring.factories META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imp […]
TransmittableThreadLocal(TTL)是阿里巴巴开源的一个 Java 库,用于解决 线程池环境下 ThreadLocal 上下文丢失 的问题。它是 InheritableThreadLocal 的增强版,特别适用于异步编程、分布式系统等场景。以下是详细解析: 一、核心问题:为什么需要 Transmi […]
一、核心设计思想 1. 可重入性(Reentrancy) 定义:同一线程可多次获取同一把锁,通过计数器记录持有次数,释放时需完全解锁(计数器归零)。 示例代码: ReentrantLock lock = new ReentrantLock(); lock.lock(); try { lock.lock(); // 可重 […]
1、Redisson和RedisTemplate的什么区别 一、功能方面: Redisson: 提供了丰富的分布式数据结构和服务,例如分布式锁、分布式集合(包括分布式列表、集合、映射、队列、阻塞队列、双端队列、优先队列等)、分布式对象(如分布式对象、原子数、位图等)以及分布式服务(如分布式远程服务、分布式调度服务、分布 […]
Spring Boot 提供了大量注解用于简化配置和开发,以下是核心常用注解分类及实战用法: 一、Bean 相关注解 1. @Component 作用:标识普通组件,被 Spring 容器自动扫描注册为 Bean。 场景:通用层(工具类、非 MVC 组件)。 @Component public class MyUtil […]
一、前言 在现代应用开发中,多线程与异步编程是提升系统性能的常用手段。例如,用户抽奖后异步发送push通知,或并行处理互不依赖的业务逻辑(将顺序执行的耗时 A+B+C 优化为并行的 Max(A,B,C))。此时,CompletableFuture 因简洁的API和强大的组合能力成为许多开发者的首选。然而,看似便捷的背后 […]
待到秋来九月八,我花开后百花杀。
冲天香阵透长安,满城尽带黄金甲。
COPYRIGHT © 2026 lifengdi.com. ALL RIGHTS RESERVED.