归档

2024 年 04 月

作为一个学Java的,如果没有研究过Netty,那么你对Java语言的使用和理解仅仅停留在表面水平,会点SSH,写几个MVC,访问数据库和缓存,这些只是初等Java程序员干的事。如果你要进阶,想了解Java服务器的深层高阶知识,Netty绝对是一个必须要过的门槛。…
一文搞懂Spring的SPI机制 Java SPI SPI 全称 Service Provider Interface ,是 Java提供的一套用来被第三方实现或者扩展的接口,它可以用来启用框架扩展和替换组件 。 SPI的作用就是为这些被扩展的API 寻找服务实现 。本质是通过基于接口的 编程+策略模式+配置文件 实现动态加载。可以实现 解耦…
MySQL 事务、锁和MVCC 以下文章来源于对线面试官 ,作者Java3y 面试官 : 你是怎么理解InnoDB引擎中的事务的? 候选者 :在我的理解下,事务可以使「一组操作」要么全部成功,要么全部失败 候选者 :事务其目的是为了「保证数据最终的一致性」。 候选者…
介绍Java8虚拟机的内存区域划分、内存垃圾回收工作原理解析、虚拟机内存分配配置,介绍各垃圾收集器优缺点及场景应用、实践内存故障场景排查诊断,方便读者面临内存故障时有一个明确的思路和方向。 一、背景 Java是一种流行的编程语言,可以在不同的操作系统上运行。它具有跨平台、面向对象、自动内存管理等特点,Java程序在运行时需要使用内存来存储数据和程序状态。…
在程序的世界中,布隆过滤器是程序员的一把利器,利用它可以快速地解决项目中一些比较棘手的问题。如网页 URL 去重、垃圾邮件识别、大集合中重复元素的判断和缓存穿透等问题。 布隆过滤器(Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。…
Lambda 表达式是 Java 8 引入的一种新特性,它可以让我们更加简洁地编写代码,提高代码的可读性和可维护性。在这篇文章中,我们将详细讨论 Lambda 表达式的用处以及如何使用。 一. 什么是 Lambda 表达式 Lambda 表达式是一种匿名函数,它没有名称,但它可以像普通函数一样接收参数和返回值。Lambda…
open-feign调用接口写法总结 POST请求 post请求,数据格式即Content-Type常见的有以下几种 application/json,form-data,x-www-form-urlencoded等,也可以像GET请求一样,参数直接拼接到url中 1、application/json 普通请求 目标接口代码…
HyperLogLog (HLL) 算法经常在数据库中被用来统计某一字段的基数即Distinct Value(DV), 可以使用固定大小的字节计算任意大小的DV。 基数就是指一个集合中不同值的数目,比如[1,2,3,8]的基数就是4,[1,2,3,8,2]的基数还是4,因为2重复了。实际场景中, HLL常用于统计网站或者APP的UV。 Maven…
本文介绍了一下OpenJDK的最新技术,对象头压缩,来大幅优化Java对象的内存占用。 前言…

2024-04-10

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