摘要: 以下是JVM垃圾回收算法的深度分析: 基础算法 • 标记-清除算法(Mark-Sweep) • 原理:首先从GC Roots出发,遍历对象图,标记所有可达的对象。然后遍历堆内存,清除未被标记的对象。 • 优点:实现简单,能有效回收不再使用的内存。 • 缺点:会产生大量内存碎片,导致后续内存分配效率降 阅读全文
posted @ 2025-03-26 23:13 lllrrrqqq 阅读(21) 评论(0) 推荐(0)
摘要: JVM(Java虚拟机)中的堆内存是其内存模型的核心部分,主要用于存储对象实例和数组。以下是JVM堆内存设计模型的详解: 1.堆内存概述 • 定义:堆内存是JVM管理的最大一块内存区域,所有线程共享,用于存储对象实例和数组。 • 特点: • 动态分配:对象的内存分配在运行时动态进行。 • 垃圾回收: 阅读全文
posted @ 2025-03-25 22:58 lllrrrqqq 阅读(56) 评论(0) 推荐(0)
摘要: 执行引擎基础概念详解 定义与作用 执行引擎(Execution Engine)是 Java 虚拟机(JVM)的核心组件之一,负责将平台无关的字节码(.class文件)转换为底层操作系统可执行的机器指令。字节码本身无法直接运行,需依赖执行引擎的解析或编译能力,实现“一次编写,到处运行”的跨平台特性。其 阅读全文
posted @ 2025-03-17 22:49 lllrrrqqq 阅读(65) 评论(0) 推荐(0)
摘要: 执行引擎的基本概念 定义:JVM的执行引擎是Java虚拟机的核心组件之一。它负责执行字节码指令,是Java程序能够在不同的操作系统和硬件平台上运行的关键所在。字节码是一种中间形式的代码,它由Java编译器生成,执行引擎读取字节码并将其转换为机器可以直接执行的指令。 类比理解:可以把字节码看作是一种剧 阅读全文
posted @ 2025-03-12 22:48 lllrrrqqq 阅读(17) 评论(0) 推荐(0)
摘要: 动态类加载应用的核心原理是利用 Java 的反射机制和类加载器(ClassLoader)的特性,实现代码在运行时的动态加载、解析和执行。这种机制使得程序可以在不重启的情况下加载新的代码、替换旧的代码,或者根据需要动态地扩展功能。 以下是动态类加载应用的原理理解,从类加载器、反射机制和具体应用(如 O 阅读全文
posted @ 2025-03-11 21:04 lllrrrqqq 阅读(28) 评论(0) 推荐(0)
摘要: 一、项目概述 本实例通过自定义类加载器、演示类及示例类,验证Java类加载机制中的双亲委派模型、破坏双亲委派场景,以及类加载器命名空间隔离特性。通过添加-verbose:class参数观察类加载过程,直观理解JVM类加载核心概念。 二、代码结构说明 1.自定义类加载器:CustomClassLoad 阅读全文
posted @ 2025-03-10 17:48 lllrrrqqq 阅读(12) 评论(0) 推荐(0)
摘要: 类加载子系统是Java虚拟机(JVM)的核心组成部分之一,它负责将类文件加载到JVM中,并进行验证、准备、解析和初始化等操作。 1.类加载子系统概述 类加载子系统的主要职责是将类文件(.class文件)加载到JVM中,并将其转换为java.lang.Class对象。这个过程包括以下几个阶段: • 加 阅读全文
posted @ 2025-03-09 11:30 lllrrrqqq 阅读(35) 评论(0) 推荐(0)
摘要: ClassLoader是 Java 中用于加载类的核心机制,它负责将类的字节码文件(.class文件)加载到 Java 虚拟机(JVM)中,并将其转换为java.lang.Class对象。理解ClassLoader的工作原理和实现细节对于深入掌握 Java 运行时机制非常重要。以下是对ClassLo 阅读全文
posted @ 2025-03-07 17:00 lllrrrqqq 阅读(34) 评论(0) 推荐(0)
摘要: 根据《Java虚拟机规范》,加载阶段(Loading)的核心任务是将类的二进制数据加载到方法区中,并创建对应的 Class 对象。以下是对加载阶段的详细解析: 加载阶段的核心操作 获取二进制字节流: 从 .class 文件、JAR包、网络资源、动态生成(如字节码框架)等来源读取类的二进制数据。 示例 阅读全文
posted @ 2025-03-06 09:22 lllrrrqqq 阅读(21) 评论(0) 推荐(0)
摘要: 精读《Java Performance》第6章(编译阈值/逃逸分析数值临界点)的核心内容总结: 1. 编译阈值(Compilation Thresholds) 核心概念: JIT(Just-In-Time)编译器并非立即编译所有代码,而是通过观察方法调用或循环执行次数(称为“热度”)决定是否触发编译 阅读全文
posted @ 2025-03-01 13:01 lllrrrqqq 阅读(62) 评论(0) 推荐(0)