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


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

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


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

JVM

JVM  Java 

程序计数器 PC记录下一条jvm指令的执行地址特点:每个线程有自己的程序计数器不会存在内存溢出虚拟机栈 JVM STACKS线程运行所需要的内存空间,称为虚拟机栈每个栈由多个栈帧组成,对应着每次方法调用的时候所占用的内存每个线程只能有一个活动的栈帧,对应着当前正在执行的那个方法栈帧每个方法运行时所需

哪些是线程安全的集合类?


Vector,Hashtable,ConcurrentHashMap,CopyOnWriteArrayList,ConcurrentLinkedQueue、ArrayBlockingQueue、LinkedBlockingQueue

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的双向队列,队列中的每个节点都代表一

HashMap的原理

Java 

说说HashMap的原理HashMap是基于哈希表的数据结构,用于存储键值对。核心是将键的哈希值映射到数组索引位置,通过数组+链表+红黑树来解决哈希冲突。HashMap使用键的hashCode()方法计算哈希值,通过(n-1) &hash确定元素在数组中的存储位置。哈希值是经过一定的扰动处理