堆外内存的回收机制分析

堆外内存JVM 启动时分配的内存称为堆内存(Heap Memory),与之相对的是堆外内存(Off-Heap Memory)。在代码中,我们可以直接使用堆外内存,例如 Netty 框架就广泛使用了堆外内存来提升性能。但这部分内存并不归 JVM 管理,GC...

Java高级面试指南 - 多线程

问题一:请解释一下 Java 中线程的生命周期有哪些阶段?Java 中线程的生命周期(Thread Lifecycle)可分为以下几个明确的阶段:1. 新建状态(New)当通过 new Thread() 等方式创建一个线程对象时,线程处于新建状态。此时线...

Redis的底层数据结构

Redis 的底层数据结构本篇博客将详细介绍 Redis 中五大数据类型的底层实现原理。1. 演示数据类型的实现在介绍 key 相关命令时,我们曾提到过以下命令:OBJECT ENCODING key该命令用于显示五大数据类型底层的编码结构(数据结构)。...

JVM之ParNew和CMS日志分析

引言本文主要针对生产环境中(Java 7)常用的两种垃圾收集器——ParNew(年轻代)与CMS(老年代),从日志信息的角度进行分析与总结。目的是帮助开发者在排查问题时,能够准确解读 GC 日志,清楚识别 GC 线程当前所处的阶段及其具体行为。ParNe...