JVM-为什么使用元空间替代永久代?


1. 决绝永久代内存空间限制问题,降低OOM风险永久代是JVM堆内存的一部分,大小固定且需要通过参数手动设置,难以根据应用实际需求动态调整,加载大量类或者使用大量反射的时候,永久代容易发生内存溢出,调优复杂2. 提高垃圾回收效率,降低Full GC频率永久代的垃圾回收与老年代绑定,且永久代中存放的类

火车票订票系统分库分表读扩散优化技术方案


火车票订票系统分库分表读扩散优化技术方案1. 背景与问题描述火车票订票系统中,订单数据量巨大,需支持以下两种主要查询:通过订单号查询单条订单详情通过用户ID查询该用户的所有订单列表为保障系统的高性能和高可用,采用分库分表策略,将订单数据拆分到多个数据库和表中。问题:订单号和用户ID查询的分片规则不一

Java中有哪些集合类,简单介绍


Java中有哪些集合类,简单介绍Java中的集合类主要分为两大类: Collection接口和Map接口实现Collection接口的类是存储对象的集合类实现Map接口存储的是键值对Collection接口下又分为List,Set,Queue接口List接口ArrayList: 基于动态数组,查询速

RocketMQ 消息类型表


RocketMQ 支持的消息类型消息类型描述适用场景特点同步消息发送方发送后阻塞,等待 Broker 返回发送结果 (ACK) 后才继续后续操作。重要的通知、注册(确保消息投递成功才能继续)、对发送可靠性要求高的业务。- 可靠性最高 - 吞吐量相对较低 - 对发送延迟敏感异步消息发送方发送后不阻

TrieMap实现


https://labuladong.online/algo/data-structure/trie-implement/#trieset-的实现https://labuladong.online/algo/data-structure-basic/trie-map-basic/TrieMap 是什

ReentrantLock 核心设计中的两个等待队列

笔记  JUC  Java 

理解这两个队列是掌握 ReentrantLock 乃至整个 Java 并发包(JUC)中锁机制的关键。这两个队列都由 ReentrantLock 的内部工具类 AbstractQueuedSynchronizer (简称 AQS) 来管理。简单来说,这两个队列是:同步队列 (Sync Queue):

AQS

笔记  JUC  Java 

讲讲AQS简单说AQS就是起到了一个抽象,封装的作用,将一些排队,入队,加锁,中断等方法提供出来,便于其它相关JUC锁的使用,具体加锁时机,入队时机等都需要实现类自己控制。英文全称 是AbstractQueuedSynchronizer,AQS的核心是一个FIFO的双向队列,队列中的每个节点都代表一

nacos安装

笔记  Java 

➜ ~ docker run --name nacos-standalone-derby -e MODE=standalone -e NACOS_AUTH_TOKEN=bWVvd3JhaW55eWRzNjY2Nm1lb3dyYWlueXlkczY2NjY= -e NACOS_AUTH_IDENTI

ThreadPoolExecutor 任务处理的核心流程

笔记  JUC  Java 

新任务来了!检查当前运行的线程数是否少于 corePoolSize (核心线程数):如果少于:线程池会直接创建新的核心线程来执行这个任务。任务不会进入 workQueue。如果不小于(即已经达到或超过 corePoolSize):进入下一步。尝试放入 workQueue (任务队列):线程池会尝试将

O(1) 时间插入、删除和获取随机元素


O(1) 时间插入、删除和获取随机元素https://leetcode.cn/problems/insert-delete-getrandom-o1/description/type RandomizedSet struct { arr []int randomMap map