跳到主要内容

30 篇文档带有标签「Java」

查看所有标签

宋红康老师JVM学习笔记-内存与垃圾回收篇-3. 运行时数据区概述及线程

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

宋红康老师JVM学习笔记-内存与垃圾回收篇-5. 虚拟机栈

虚拟机栈是Java虚拟机为每个线程分配的内存区域,用于存储方法的局部变量、部分方法信息以及方法调用和返回的状态。每个方法在执行时都会创建一个栈帧,栈帧随着方法的调用和返回而入栈和出栈。栈的大小可以固定或动态扩展,栈的深度受限于具体的JVM实现。虚拟机栈是线程私有的,保证了线程执行过程中的数据独立性和安全性。

宋红康老师JVM学习笔记-内存与垃圾回收篇-6. 本地方法接口

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

宋红康老师JVM学习笔记-内存与垃圾回收篇-8. 堆

Java虚拟机(JVM)堆是JVM内存模型的一部分,是用来存储对象实例和数组的内存区域。在Java应用程序运行时,所有的对象实例都在堆上分配。堆是由垃圾收集器管理的,这意味着当对象不再被引用时,垃圾收集器会自动回收这些对象占用的内存。本文的主要内容包括堆空间的内部结构、内存管理(分代)、对象的分配过程、逃逸分析、标量替换等内容。

宋红康老师JVM学习笔记-前言

JVM学习,B站宋红康老师的视频,自己跟着手撸的代码及笔记,流程图全部自己又画了一遍。有学习需要的小伙伴可以收藏(Ctrl + D)下,持续更新中。。。。。

宋红康老师JVM学习笔记-字节码与类的加载篇-4. 再谈类的加载器

类加载器是 JVM 执行类加载机制的前提1. 它负责将 Class 信息的二进制数据流读入 JVM 内部,转换为与目标类对应的 java.lang.Class 对象实例,然后交给 Java 虚拟机进行链接、初始化等操作。ClassLoader 在整个装载阶段只影响类的加载,无法改变类的链接和初始化行为。至于类是否可以运行,由 Execution Engine 决定