搜索文章
首页
智能助手
归档
瞬间
首页
智能助手
归档
瞬间
全部
杂文 (3)
Java (344)
Python (3)
数据库 (76)
Linux (14)
Docker (3)
数据结构 (39)
大数据 (22)
人工智能 (19)
MQTT (3)
缓存穿透、缓存击穿和缓存雪崩
缓存穿透、缓存击穿和缓存雪崩是在使用缓存时常见的性能问题。 缓存穿透指的是恶意查询一个不存在的数据,导致该请求每次都会穿透缓存,直接访问数据库。这种情况下,大量请求会直接访问数据库,给数据库造成压力,降低了系统性能。 解决办法: 使用布隆过滤器:将所有可能存在的数据放入布隆过滤器中,对请求进行过滤,
作者:詹学伟
发布时间:2024-04-24
分类:
Java
标签:
#
面试题
G1垃圾收集器
G1是一种面向服务器端应用的垃圾收集器,是JDK 7版本引入的一项重要特性。G1垃圾收集器以实现<
作者:詹学伟
发布时间:2024-04-24
分类:
Java
标签:
#
面试题
线上OOM问题
排查线上OOM问题是一个复杂的过程,需要综合运维经验、日志分析和性能监控等多个方面的信息。下面是一般的排查步骤: 收集信息:首先,收集与OOM问题相关的信息,包括错误日志、
作者:詹学伟
发布时间:2024-04-24
分类:
Java
标签:
#
面试题
HashMap的扩容机制
HashMap的扩容机制是为了保持负载因子在一定范围内,以提高HashMap的性能和效率。负载因子是指HashMap中已存储的键值对数量与数组容量的比值。 当HashMap中的键值对数量超过了负载
作者:詹学伟
发布时间:2024-04-24
分类:
Java
标签:
#
面试题
ConcurrentHashMap的存储结构
ConcurrentHashMap在Java7 中使用的分段锁,也就是每一个 Segment 上同时只有一个线程可以操作,每一个 Segment 都是一个类似 HashMap 数组
作者:詹学伟
发布时间:2024-04-24
分类:
Java
标签:
#
面试题
线程池大小设置
线程池大小的设置需要根据具体的应用场景和系统资源进行考量。以下是一些常见的设置策略: 1、CPU 密集型任务: 这种任务消耗的主要是 CPU 资源,可以将线程数设置为
作者:詹学伟
发布时间:2024-04-24
分类:
Java
标签:
#
面试题
Spring AOP底层原理
Spring AOP全称是面向切面编程,是Spring框架的一个重要特性,它通过在运行时动态地将额外的行为(如日志记录、事务管理等)织入到应用程序的特定方法或代码块中。 底层原理主要基于动态代理和
作者:詹学伟
发布时间:2024-04-24
分类:
Java
标签:
#
面试题
String 为什么要设计成不可变的
String被设计成不可变的有以下几个原因: 线程安全:由于String是不可变的,多个线程可以同时访问同一个String对象而无需担心数据被修改。这使得String在多线程环境下是线程安全的。 缓存Hash值:由于String是不可变的,它的hashCode可以缓存,将String用作Key在哈希
作者:詹学伟
发布时间:2024-04-24
分类:
Java
标签:
#
面试题
什么是“零拷贝”?有什么作用?
零拷贝是操作系统提供的一种优化 IO 操作的重要机制。通过零拷贝技术,操作系统可以极大的减少在一次 IO 操作中,数据从一个内存区域复制到另一个内存区域的次数,以及在此过程中对 CPU 的性能消耗。零拷贝技术可以极大的提高数据传输的效率,避免不必要的数据拷贝,从而降低系统负载。 零拷贝有两种实现方式
作者:zhanxuewei
发布时间:2024-04-24
分类:
Java
标签:
#
消息中间件
,
#
kafka
zk集群数据是如何同步的
Zookeeper集群的数据同步过程如下: 集群启动时,会先进行领导者选举,确定哪个节点是Leader,哪些节点是Follower和Observer。 Leader会和其他节点进行数据同步,采用发送快照和发送Diff日志的方式。 集群在工作过程中,所有的写请求都会交给Leader节点来进行处理,从节
作者:zhanxuewei
发布时间:2024-04-24
分类:
Java
标签:
#
消息中间件
,
#
zookeeper
共 344 篇文章
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
页