Java中引用存储的是对一块内存地址的起始地址。除此之外,jdk另外还提供了四种引用:强引用、软引用、弱引用、虚引用来分别表示不同场景下回收的引用,更加丰富。 一、强引用 强...
Java中引用存储的是对一块内存地址的起始地址。除此之外,jdk另外还提供了四种引用:强引用、软引用、弱引用、虚引用来分别表示不同场景下回收的引用,更加丰富。 一、强引用 强...
1. 设计目标 ID唯一不重复 高性能 2. 架构图 Server要生成唯一ID,先从Mysql一次性申请若干个独占ID,如500个,Server用完这500个后,一次性去M...
一、volatile保证内存可见性 jvm规定所有变量数据需要存放在主内存中,同时各线程又有自己的工作内存(用来做高速缓存)。数据由于cpu与内存速度上的差异,所以线程工作的...
一、类生命周期 java代码经过编译生成.class二进制文件,通过类加载器加载到jvm中运行,最后不需要的时候被回收,这是一个jvm整体运行的一个情况。 类加载进jvm后又...
一、定义 HashMap继承了AbstractMap,实现了Map接口。 二、数据结构 在1.8以前,hashmap是数组+链表的结构。 hashmap里存放的是一个线形数组...
一、介绍 CopyOnWriteArrayList继承了List接口,类如其名,再写时复制,以保证线程安全。 CopyOnWriteArrayList的成员变量: 使用了Re...
一、ReentrantLock是什么 ReentrantLock是一个互斥的可重入锁。互斥的意思就是排他,独占,只能一个线程获取到锁。可重入的意思就是单个线程可以多次重复获取...
面试官心理分析 你看这问法,其实本质针对的场景,都是说,可能你的消费端出了问题,不消费了;或者消费的速度极其慢。接着就坑爹了,可能你的消息队列集群的磁盘都快写满了,都没人消费...
一、缓存穿透 1.1 缓存穿透是什么 当查询的数据是缓存和数据库都不存在的数据,也就是不是真是的数据时,每次查询都会打到数据库,这种情况称之为缓存穿透。 1.2 发生场景 比...
一、ThreadLocal是什么 ThreadLocal是线程本地存储变量,线程将一些变量存储在ThreadLocal对象中。 二、ThreadLocal的用法 Thread...
redis集群模式有3种: 主从模式 哨兵模式 Cluster模式 下面就分别介绍一下这3中模式: 1.主从模式 一台做主库,多台做从库。从库的数据是从主库的一次内存快照复制...
一、代码展示 先设计一个不可重入锁: 运行结果: 可以看到同一个线程,重复获取锁失败,形成死锁,这就是不可重入锁。 然后再写一个可重入锁: 测试: 运行结果: 可以看到,同一...
一、事务 RabbitMQ中与事务机制有关的方法有三个:txSelect(), txCommit()以及txRollback()。txSelect()开启事务,生产者发送消息...
一、hash算法 我们有3w条数据要放在3台redis服务器上,根据id或者其他关键字进行hash取模,分布到A,B,C这3台机器上。 hash(id)% N N为redis...
一、什么是读写分离? 就是读写分开,读从一个数据库读,写从另一个数据库写。基于主从复制架构,一个主库,多个从库。写入主库,读从多个从库中读。 二、Mysql主从复制的原理 主...