JVM的五大分区

news/2025/2/13 19:40:46/

1.方法区

方法区主要用来存储已在虚拟机加载的类的信息、常量、静态变量以及即时编译器编译后的代码信息。该区域是被线程共享的

2.虚拟机栈

虚拟机栈也就是我们平时说的栈内存,它是为java方法服务的。每个方法在执行的 时候都会创建一个栈帧,用于存储局部变量表、操作数栈、动态链接和方法出口等信息。虚拟机栈是线程私有的,它的生命周期与线程相同。

3.本地方法栈

本地方法栈和虚拟机栈类似,只不过本地方法栈为 Native 方法服务

4.堆

java 堆是所有线程所共享的一块内存,在虚拟机启动时创建,几乎所有的对象实例都在这里创建,因此该区域经常发生垃圾回收操作。堆区由可划分为新生代、老年代和元空间三个区域。新生代是所有java对象出生的地方,也是垃圾回收最频繁的区域,新生代的对象大多都朝生夕灭,且Eden区和From、To区三个的比例为8:1:1。老年代是存储被长期使用的对象,元空间存储一些方法中操作的临时对象。

5.程序计数器

内存空间小,字节码解释器工作时通过改变这个计数值可以选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理和线程恢复等功能都需要依赖这个计数 器完成。该内存区域是唯一一个 java 虚拟机规范规定不会抛 OOM 错误的区域(OOM:Out Of Memory,内存用完)。


http://www.ppmy.cn/news/1269514.html

相关文章

小黑子——springBoot基础

springBoot简单学习 一、SpringBoot简介1.1 springBoot快速入门1.1.1 开发步骤1.1.2 对比1.1.3 官网构建工程1.1.3 SpringBoot工程快速启动 1.2 springBoot概述1.2.1 起步依赖I. 探索父工程II. 探索依赖III. 小结 1.2.2 程序启动1.2.3 切换web服务器-jetty 二、配置文件2.1 配置…

什么是LAMP和LNMP?它们有何区别?

LAMP 和 LNMP 是两种常见的 Web 服务器架构,它们分别代表了 Linux、Apache/Nginx、MySQL、PHP/Python/Perl 或类似技术的首字母。它们是构建 Web 应用程序和托管动态网站的标准架构。以下是它们的定义和主要区别: LAMP 架构: Linux&#xff…

如何部署Portainer容器管理工具+cpolar内网穿透实现公网访问管理界面

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 本文主要介绍如何本地安装Portainer并结合内网穿透工具实现任意浏览器远程访问管理界面。Portainer 是一个轻量级…

智能指针管理“newed对象”

为什么要有智能指针? 指针智能是管理管理动态内存分配对象的一种机制。它提供了自动管理内存,避免常见内存泄漏和悬空指针。 对于上述Func函数的操作,一不小心就会产生很多问题。 p1 new时候抛异常 什么都不做p2 new时候抛异常 p1需要被清理…

docker小白第三天

docker小白第三天 docker为什么会比虚拟机快 1、docker有着比虚拟机更少的抽象层。不需要Hypervisor实现硬件资源虚拟化,运行在docker容器上的程序直接使用的都是实际物理机的硬件资源,因此在CPU、内存利用率上docker将会在效率上有明显优势。 2、dock…

ASF-YOLO开源 | SSFF融合+TPE编码+CPAM注意力,精度提升!

目录 摘要 1 Introduction 2 Related work 2.1 Cell instance segmentation 2.2 Improved YOLO for instance segmentation 3 The proposed ASF-YOLO model 3.1 Overall architecture 3.2 Scale sequence feature fusion module 3.3 Triple feature encoding module …

css中2D/3D的变化

变换可以改变元素的位置、大小、旋转、倾斜等属性,以创建各种动态效果。 一、常用的2D变换: 平移(translate):使用 translate() 函数来改变元素的位置。可以指定水平和垂直方向的偏移量,如 transform: tra…

git-vscode

git-vscode ctrlshiftp 创建分支 create branch 直接切到新的分支了 切换分支 直接点左下角自己选择 vscode中配置仓库 https://blog.csdn.net/zora_55/article/details/129709251 推送tag tag作用就是在 Git 中,标记存储库历史记录中特定提交的一种方式。t…