青云博客 记录、分享

MySQL事务隔离级别

MySQL事务隔离级别是指在并发环境下,事务之间相互隔离的程度。MySQL提供了四个事务隔离级别,分别是读未提交、读已提交、可重复读和串行化

詹学伟 Published on 2024-04-24

线上OOM问题

排查线上OOM问题是一个复杂的过程,需要综合运维经验、日志分析和性能监控等多个方面的信息。下面是一般的排查步骤: 收集信息:首先,收集与OOM问题相关的信息,包括错误日志、

詹学伟 Published on 2024-04-24

HashMap的扩容机制

HashMap的扩容机制是为了保持负载因子在一定范围内,以提高HashMap的性能和效率。负载因子是指HashMap中已存储的键值对数量与数组容量的比值。 当HashMap中的键值对数量超过了负载

詹学伟 Published on 2024-04-24

ConcurrentHashMap的存储结构

ConcurrentHashMap在Java7 中使用的分段锁,也就是每一个 Segment 上同时只有一个线程可以操作,每一个 Segment 都是一个类似 HashMap 数组

詹学伟 Published on 2024-04-24

线程池大小设置

线程池大小的设置需要根据具体的应用场景和系统资源进行考量。以下是一些常见的设置策略: 1、CPU 密集型任务: 这种任务消耗的主要是 CPU 资源,可以将线程数设置为

詹学伟 Published on 2024-04-24

Spring AOP底层原理

Spring AOP全称是面向切面编程,是Spring框架的一个重要特性,它通过在运行时动态地将额外的行为(如日志记录、事务管理等)织入到应用程序的特定方法或代码块中。 底层原理主要基于动态代理和

詹学伟 Published on 2024-04-24

HashMap底层数据结构

HashMap的底层数据结构主要由数组和链表(或红黑树)组成。

詹学伟 Published on 2024-04-24

String 为什么要设计成不可变的

String被设计成不可变的有以下几个原因: 线程安全:由于String是不可变的,多个线程可以同时访问同一个String对象而无需担心数据被修改。这使得String在多线程环境下是线程安全的。 缓存Hash值:由于String是不可变的,它的hashCode可以缓存,将String用作Key在哈希

詹学伟 Published on 2024-04-24

如何设计一个分布式缓存系统

设计一个分布式缓存系统需要考虑以下几个方面: 数据分片:将缓存数据分散存储在多个节点上,每个节点负责一部分数据,以提高并发读写操作的吞吐量。 数据一致性:为了保证数据的一致性,可以采用一致性哈希算法来确定数据在哪个节点上存储,并使用分布式锁来控制并发写操作。 缓存失效策略:可以采用时间过期策略或基于

詹学伟 Published on 2024-04-23

CPU飙高问题如何排查

当你遇到高CPU占用问题时,可以采取以下步骤来排查和解决: 查看任务管理器:首先,打开任务管理器(Windows)或使用类似的工具(Linux上的top命令),找出哪个程序或进程正在占用大量的CPU。

詹学伟 Published on 2024-04-23
Previous Next