Java 中的类内存

10 Sept 2024 | 4 分钟阅读

类在内存中的结构

Java 程序中的每一个类在编译时都会被转换成字节码。字节码的主要目的是存储将由 Java 虚拟机 (JVM) 执行的指令。Class 对象负责包含有关类结构、方法、字段和各种元数据的所有信息和数据。

类加载

Java 采用动态类加载机制。JVM 会加载 Java 程序运行时所需和使用的所有类。所有类文件都由类加载器子系统查找和加载。有各种可用的类加载器,例如 Bootstrap 类加载器、Extension 类加载器等。所有类型的类加载器协同工作,将类加载到分配给 Java 虚拟机 (JVM) 的内存中。

让我们通过几个 Java 示例程序来详细了解 Java 中的类内存。

示例 1

文件名: ClassMemory.java

输出

Memory Usage Before Creating Objects:
Total Memory: 123731968 bytes
Free Memory: 121716432 bytes
Used Memory: 2015536 bytes
------------------------
Memory Usage After Creating Objects:
Total Memory: 123731968 bytes
Free Memory: 121150408 bytes
Used Memory: 2581560 bytes
------------------------
Memory Usage After Performing Additional Work:
Total Memory: 123731968 bytes
Free Memory: 118347160 bytes
Used Memory: 5384808 bytes

让我们来看另一个相同的例子。

文件名: ClassMemoryDemo.java

输出

Memory Usage Before Creating Objects:
Total Memory Allocated: 123731968 bytes
Free Memory Allocated: 121716432 bytes
Used Memory Allocated: 2015536 bytes
------------------------
Memory Usage After Creating Objects:
Total Memory Allocated: 123731968 bytes
Free Memory Allocated: 121150400 bytes
Used Memory Allocated: 2581568 bytes
------------------------
Memory Usage After Performing Additional Work:
Total Memory Allocated: 123731968 bytes
Free Memory Allocated: 117522224 bytes
Used Memory Allocated: 6209744 bytes
------------------------