一江溪水
08
20
Redis缓存过期与内存淘汰 Redis缓存过期与内存淘汰
Redis缓存过期与内存淘汰 Redis中有个设置时间过期的功能,即对存储在redis 数据库中的值可以设置一个过期时间,到了过期时间,key会被删除 如果内存空间满了,再往Redis里面插入数据,就会触发缓存淘汰机制 缓存过期策略作为一个
2021-08-20
19
Redis的持久化方式 Redis的持久化方式
Redis的持久化方式Redis 缓存的优势是提供快速的查询和存储能力,所以所有的数据都被存储在内存中。相对于硬盘,内存中的数据是半持久化存储,当遇到不可抗阻力,例如断电或者硬件损坏导致的服务器宕机时,内存中的数据会完全丢失。为了防止 Re
2021-08-19
18
JVM垃圾收集器 JVM垃圾收集器
垃圾收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 垃圾收集器分类目前,有很多的垃圾收集器,各类垃圾收集器各有优缺点,但目前为止还没有最好的垃圾收集器出现,更加没有万能的垃圾收集器,我们能做的就是根据具体应用场景选择适合
2021-08-18
16
如何判断对象是垃圾 如何判断对象是垃圾
如何判断对象是否是垃圾堆中几乎放着所有的对象实例,对堆垃圾回收前的第步就是要判断哪些对象已经死亡(即不能再被任何途径使用的对象),方便垃圾回收器对这些死亡的对象进行回收。在说如果判断对象是否为垃圾前,我们需要了解一些其他概念 垃圾回收器JV
2021-08-16
15
JVM运行时数据区(二) JVM运行时数据区(二)
JVM运行时数据区(二) 上篇文章写了JVM运行时数据区中的程序计数器,Java虚拟机栈和本地方法栈。这篇文章我们接着班Java运行时数据区中的堆和方法区说一下 方法区(Method Area)方法区,也称非堆(Non-Heap),是一个
2021-08-15
14
JVM运行时数据区(一) JVM运行时数据区(一)
JVM运行时数据区Java运行时数据区可以细分为五个模块:栈,堆,寄存器,方法区和本地方法栈在Java8之后,方法区改成了元空间,有一些区域是线程私有的,有一些是线程共享的 线程私有 程序计数器 Java 虚拟机栈 本地方法栈线程共享 Ja
2021-08-14
06
Java类加载机制 Java类加载机制
类加载过程Java类加载过程为:加载-链接-初始链接的过程包括验证,准备,解析 加载把编译后的class字节码文件通过类加载器装载入内存中,并将这些数据转换成方法区中的运行时数据(静态变量、静态代码块、常量池等),在堆中生成一个Class类
2021-08-06
02
07
28
RabbitMQ队列模型 RabbitMQ队列模型
模型定义 生产者(Producer):发送消息到队列的模块,可以理解为消息的提供者 队列(Queue):存储消息的一段空间,作为消息的缓存模块; 消费者(Consumer):从队列中接受消息的模块,可以理解为消息的处理者 交换机(Excha
2021-07-28
27
消息队列基础 消息队列基础
什么是队列队列这个概念非常好理解,你可以把它想象为在食堂排队打饭,先来的先打,后来的人只能站末尾,不允许插队,先进者先出,这就是典型的队列。队列的特定就是先进先出,先来的先出去 什么是消息队列消息 消息是指在应用间传送的数据。 消息可以非常
2021-07-27
23
Java集合之HashMap(三) Java集合之HashMap(三)
线程安全在多线程,高并发的场景下,HashMap存在线程安全问题 主要原因在于并发下的rehash会造成元素之间会形成一个循环链表。 jdk 1.8 后解决了这个问题,但是还是不应该在多线程下使用HashMap ,因为多线程下使用Hash
2021-07-23
22
Java集合之HashMap(二) Java集合之HashMap(二)
HashMap扩容机制明确几个参数: capacity 即容量,默认16。 loadFactor 加载因子,默认是0.75 threshold 阈值。阈值=容量*加载因子。默认12。当元素数量超过阈值时便会触发扩容。 什么时候触发扩容?
2021-07-22
5 / 7