跳到主要内容

JVM上篇:内存与垃圾回收篇

📄️ 3. 运行时数据区概述及线程

运行时数据区(Runtime Data Areas)是指在程序在运行过程中,由Java虚拟机(JVM)管理的各种内存空间。这些数据区域主要用于存储程序运行时所需的数据,包括程序的字节码、类信息、对象实例、方法等。在Java虚拟机规范中,主要的运行时数据区包括以下几个部分:**程序计数器(Program Counter)、Java虚拟机栈(JVM Stacks)、堆(Heap)、方法区(Method Area)、运行时常量池(Runtime Constant Pool)、本地方法栈(Native Method Stack)**。

📄️ 6. 本地方法接口

本地方法接口(Native Method Interface,JNI)是 Java 提供的一种机制,允许 Java 代码与本地(非 Java)代码进行交互。通过 JNI,Java 程序可以调用 C、C++ 等编写的本地代码,也可以让本地代码调用 Java 代码。JNI 提供了一组标准的接口和约定,用于在 Java 虚拟机中动态加载和调用本地方法。这种能力使得 Java 在需要与操作系统、硬件或其他非 Java 代码交互的场景下更为灵活和强大,同时需要注意 JNI 使用时需要小心管理内存和确保跨语言调用的正确性。

笔记

3~10:主要为运行时数据区

13:StringTable应对属于运行时数据区,但是因为面试的时候经常问,所以单独成章,单独讲解一下。

13~16:主要是垃圾回收相关内容

相关资料

这部分对应虚拟机规范中的第二部分:

其他官方资料