
JVM
文章平均质量分 97
JVM相关文章
齐 飞
书山有路勤为径,学海无涯苦作舟。诸君 共勉!
展开
-
JVM类加载器详解
类加载器虽然只用于实现类的加载动作,但它在Java程序中起到的作用却远超类加载阶段。对于任意一个类,都必须由加载它的类加载器和这个类本身一起共同确立其在Java虚拟机中的唯一性,一个类加载器,都拥有一个独立的类名称空间。原创 2025-03-30 22:01:25 · 656 阅读 · 0 评论 -
JVM类加载过程详解
类从被加载到虚拟机内存中开始到卸载出内存为止,它的整个生命周期可以简单概括为 7 个阶段:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)。其中,验证、准备和解析这三个阶段可以统称为连接(Linking)。原创 2025-03-23 22:13:33 · 1112 阅读 · 0 评论 -
JVM类文件结构详解
在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码并不针对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同操作系统的计算机上运行。原创 2025-03-23 19:41:56 · 943 阅读 · 0 评论 -
JVM垃圾回收笔记02-垃圾回收器
如果说回收(收集)算法是内存回收的方法论,那么垃圾回收(收集)器就是内存回收的具体实现。虽然有各种的收集器,但并非要挑选出一个最好的收集器。因为直到现在为止还没有最好的垃圾收集器出现,更加没有万能的垃圾收集器,我们能做的就是根据具体应用场景选择适合自己的垃圾收集器。原创 2025-03-22 23:46:49 · 1419 阅读 · 0 评论 -
JVM垃圾回收笔记01-垃圾回收算法
Java 堆是垃圾收集器管理的主要区域,因此也被称作 GC 堆(Garbage Collected Heap)。从垃圾回收的角度来说,由于现在收集器基本都采用**分代垃圾收集算法**,所以 Java 堆被划分为了几个不同的区域,这样我们就可以根据各个区域的特点选择合适的垃圾收集算法。原创 2025-03-22 23:44:56 · 1042 阅读 · 0 评论 -
JVM内存结构笔记06-HotSpot虚拟机对象探秘
Java是一门面向对象的编程语言,Java程序运行过程中无时无刻都有对象被创建出来。在语言层面上,创建对象通常(例外:复制、反序列化)仅仅是一个new关键字而已,而在虚拟机中,对象(文中讨论的对象限于普通Java对象,不包括数组和Class对象等)的创建又是怎样一个过程呢?基于实用优先的原则,本文以最常用的虚拟机HotSpot和最常用的内存区域Java堆为例,深入探讨一下HotSpot虚拟机在Java堆中对象分配、布局和访问的全过程。原创 2025-03-20 19:39:31 · 637 阅读 · 0 评论 -
JVM内存结构笔记05-直接内存
直接内存是一种特殊的内存缓冲区,并不在 Java 堆或方法区中分配的,而是通过 JNI 的方式在本地内存上分配的。直接内存并不是虚拟机运行时数据区的一部分,也不是虚拟机规范中定义的内存区域,但是这部分内存也被频繁地使用。而且也可能导致 OutOfMemoryError 错误出现。原创 2025-03-13 19:02:16 · 652 阅读 · 0 评论 -
JVM中常量池和运行时常量池、字符串常量池三者之间的关系
在Java虚拟机(JVM)中,常量池、运行时常量池和字符串常量池是三个相关但又有所区别的概念。本文将详细解释这三个概念及其相互的联系。原创 2025-03-13 19:01:42 · 1029 阅读 · 0 评论 -
JVM内存结构笔记04-字符串常量池
字符串常量池 是 JVM 为了提升性能和减少内存消耗针对字符串(String 类)专门开辟的一块区域,主要目的是为了避免字符串的重复创建。原创 2025-03-12 23:20:13 · 1030 阅读 · 0 评论 -
JVM内存结构笔记03-方法区
方法区属于是 JVM 运行时数据区域的一块逻辑区域,是各个线程共享的内存区域。当虚拟机要使用一个类时,它需要读取并解析 Class 文件获取相关信息,再将信息存入到方法区。方法区会存储已被虚拟机加载的 类信息、字段信息、方法信息、常量、静态变量、即时编译器编译后的代码缓存等数据。原创 2025-03-12 21:46:42 · 968 阅读 · 0 评论 -
JVM内存结构笔记02-堆
堆是Java 虚拟机所管理的内存中最大的一块,Java 堆是所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例以及数组都在这里分配内存。原创 2025-03-11 22:18:32 · 972 阅读 · 0 评论 -
JVM内存结构笔记01-运行时数据区域
对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像 C/C++那样为每一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序员把内存控制权利交给 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。原创 2025-03-11 22:18:14 · 767 阅读 · 0 评论