有趣的时间轮

有趣的时间轮 前言 如果有一个需求,一个任务执行失败后需要重试,重试的次数和时间点是可配置的,那么需要怎么实现呢?一个不错的方法就是通过 时间轮 来实现。 时间轮是什么 时间轮 (Time Wheel)是一种常见的定时任务调度算法。它通过将一段时间划分为若干个离散的时间槽,并按照固定的时间间隔顺时针转动,来触发和执行在特定时间点上应该执行的任务。…

hello hello 发布于 2024-04-10

Java对象头压缩—- 永久为Java应用“降本增效”

本文介绍了一下OpenJDK的最新技术,对象头压缩,来大幅优化Java对象的内存占用。 前言…

hello hello 发布于 2024-04-10

Jackson 工具类使用及配置指南

Jackson 工具类使用及配置指南 前言 Json数据格式这两年发展的很快,其声称相对XML格式有很对好处: 容易阅读; 解析速度快; 占用空间更少。 不过,JSON 和 XML两者纠结谁优谁劣,这里不做讨论,可以参见知乎上为什么XML这么笨重的数据结构仍在广泛应用? 最近在项目中,会有各种解析JSON文本的需求,使用第三方 Jackson…

hello hello 发布于 2024-04-10

3月技术更新大盘点

• Astro发布了版本4.5,提供了更好的开发者体验和实验性的Json数据集模式。 • Astro开始利用lib SQL的强大功能,提供了自己的完全托管的集成数据库解决方案。 • Tailwind CSS 4 Alpha宣布使用rust引擎,使构建速度提高了10倍,并且只有一个外部依赖。 • 进行了1亿行挑战,要求读取一个拥有1亿行的文件并进行聚合。 •…

hello hello 发布于 2024-04-02

volatile关键字的作用、原理

在只有双重检查锁,没有volatile的懒加载单例模式中,由于指令重排序的问题,我确实不会拿到两个不同的单例了,但我会拿到“半个”单例。 而发挥神奇作用的volatile,可以当之无愧的被称为Java并发编程中“出现频率最高的关键字”,常用于保持内存可见性和防止指令重排序。 保持内存可见性 内存可见性(Memory…

hello hello 发布于 2024-04-01

Java中如何恰当的表达“继承”与“扩展”的语义?

”继承“是Java的面向对象学习过程中的大难题,原因有二: ”is-A“的关系本身就不好理解 Java中的extends“扩展”与面向对象中的“继承”inheritance不是一一对应的。…

hello hello 发布于 2024-04-01

源码|ThreadLocal的实现原理

ThreadLocal也叫“线程本地变量”、“线程局部变量”: 其作用域覆盖线程,而不是某个具体任务; 其“自然”的生命周期与线程的生命周期“相同”(但在JDK实现中比线程的生命周期更短,减少了内存泄漏的可能)。 ThreadLocal代表了一种 线程与任务剥离 的思想,从而达到 线程封闭…

hello hello 发布于 2024-04-01

线程池ThreadPoolExecutor总结

之前在源码|从串行线程封闭到对象池、线程池中挖坑说要精炼一篇短文。本文填坑,总结线程池的种类、应用场景、ThreadPoolExecutor参数含义,最后简单介绍如何估算线程池大小。 JDK版本:oracle java 1.8.0_102 不同语言、同一语言不同库的线程池实现有差别,不要拘泥于Java这一种,没事看看work…

hello hello 发布于 2024-04-01

二维码的原理

QR码是一种通过二维码图像来存储信息的编码方式,由固定的部分和实际数据组成,可以通过扫描设备识别和解读,具有快速、灵活和容错性强的特点,目前已经广泛应用于各个领域。

hello hello 发布于 2024-03-30

如何使用 Three.js 构建3D网站

本教程介绍了如何使用Three.js创建一个令人印象深刻的个人作品集网站,包括3D动画、摄像机和光照等概念。 通过使用Three.js的几何图形、材质和网格来实现对象的动画效果,以及通过添加灯光和纹理等元素来增加真实感。 同时介绍了加载图片和贴图以及使用辅助工具进行调试和优化的方法,最终构建了一个令人惊叹的3D作品集网站。 00:00…

hello hello 发布于 2024-03-30
上一页 下一页