JVM(内存区域划分)

JVM

JVM - Java虚拟机
我们编写的 Java 程序, 是不能够被 OS 直接识别的
JVM 充当翻译官的角色, 负责把我们写的的 Java 程序 ,翻译给 OS “听”, 让 OS 能够识别我们所写的 Java 代码


JVM 内存区域划分

JVM 是一个应用程序, 在启动的时候, 会从 操作系统 申请到一整块很大的内存区域
并且 JVM 会根据需要, 将整个内存区域, 根据功能进行划分

JVM运行时数据区(内存布局)
在这里插入图片描述

Native Method Stacks (本地方法栈) : 存储本地方法 (JVM 内部方法) 之间的调用关系

  • 线程私有

Program Counter Register (程序计数器) : 记录当前正在执行指令的地址

  • 线程私有

JVM Stacks (虚拟机栈) : 描述 Java 方法之间的调用关系,存储基本数据类型和对象的引用(不是对象本身, 是对象的引用,对象存储在Heap区)

  • 线程私有
  • 整个栈空间内部,可以任务是包含很多个元素, 每个元素表示一个方法, 每个元素称为一个 “栈帧” ,每个栈帧里会包含该方法的 入口地址,方法参数,返回地址, 形参, 局部变量 …

Heap (堆区) : 整个 JVM 空间最大的区域, 存储程序中创建的所有的对象的实例.

  • 线程共享
  • 堆里面分为两个区域 : 新生代和老生代 ( 新生代包含三个区域: 一个Endn+ 和两个 Survivor(S0/S1) )

Metaspace (元数据区/方法区) : 存储类对象, 常量池, 静态成员

  • 线程共享
  • 一个进程只有一块, 多个线程共用

对给出的一段代码, 判断某个变量在哪个区域上?

遵循原则:

  • 局部变量在 栈
  • 普通成员变量在 堆
  • 静态成员变量在 方法区/元数据区

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/520808.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel统计分析——裂区设计

参考资料:生物统计学 裂区设计(split-plot design)是安排多因素试验的一种方法,裂区设计对因素的安排有主次之分,适用于安排对不同因素试验精度要求不一的试验。 裂区设计时,先按第一因素的处理数划分主区&…

CentOS7.9基于Apache2.4+Php7.4+Mysql8.0架构部署Zabbix6.0LTS 亲测验证完美通过方案

前言: Zabbix 由 Alexei Vladishev 创建,目前由 Zabbix SIA 主导开发和支持。 Zabbix 是一个企业级的开源分布式监控解决方案。 Zabbix 是一款监控网络的众多参数以及服务器、虚拟机、应用程序、服务、数据库、网站、云等的健康和完整性的软件。 Zabbix 使用灵活的通知机制,…

element组件使用教程

首先在终端输入 npm i element-ui -S 下载完成后如何使用呢 在main.js文件中导入组件以及需要使用 import Vue from vue import { Button, Form, FormItem, Input, Message, Container, Header, Aside, Main, Menu, Submenu, MenuItem, MenuItemGroup } from element-uiVue.…

基于Yolo5模型的动态口罩佩戴识别安卓Android程序设计

禁止完全抄袭,引用注明出处。 下载地址 前排提醒:文件还没过CSDN审核,GitHub也没上传完毕,目前只有模型的.pt文件可以下载。我会尽快更新。 所使用.ptl文件 基于Yolo5的动态口罩佩戴识别模型的pt文件资源-CSDN文库 项目完整文…

STM32day2

1.思维导图 个人暂时的学后感,不一定对,没什么东西,为做项目奔波中。。。1.使用ADC采样光敏电阻数值,如何根据这个数值调节LED灯亮度。 while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */adc_val HAL_ADC_GetValue(&a…

ubuntu20.04安装ros并配置相关环境以及驱动AUBO i5机械臂

ubuntu20.04安装ros并配置相关环境以及驱动AUBO i5机械臂 安装ros安装rosdep(小鱼的rosdepc,又快又好用)环境配置下载并编译aubo roslib库环境变量配置aubo gazeboaubo rviz驱动真实机械臂 安装ros 搜索鱼香ros网站https://fishros.com/,根据一键安装ros里提供的指…

看一看阿里云,如何把抽象云概念,用可视化表达出来。

云数据库RDS_关系型数据库 云数据库RDS_关系型数据库 专有宿主机 云数据库RDS_关系型数据库_MySQL源码优化版 内容协作平台CCP-企业网盘协同办公-文件实时共享

(五)关系数据库标准语言SQL

注:课堂讲义使用的数据库 5.1利用SQL语言建立数据库 5.1.1 create Database 5.1.2 create schema...authorization... 创建数据库和创建模式的区别: 数据库是架构的集合,架构是表的集合。但在MySQL中,他们使用的方式是相同的。 …

图论练习6

[NOIP2013]车站分级 Here 解题思路 由于起始点之间所选的站号,相互之间一定满足那么对于起始点间未选择的站号,一定满足选择的站号考虑用边来维护信息,表示的级别大于按题意,则车站会被分为几个联通块,且保证块内无环…

社区店选址案例研究:成功与失败的经验教训

大家好,我是一名鲜奶吧5年的创业者,在社区店经营方面有着丰富的经验。 今天,我将分享一些关于社区店选址的成功与失败案例,希望能给想开实体店或创业的朋友们提供有价值的干货信息。 首先,让我们来看看成功的社区店选…

C++程序设计-第四/五章 函数和类和对象【期末复习|考研复习】

前言 总结整理不易,希望大家点赞收藏。 给大家整理了一下C程序设计中的重点概念,以供大家期末复习和考研复习的时候使用。 文章目录 前言第四章 函数 函数和类和对象4.1 说明带参数的宏与内联函数有什么不同4.2 全局变量和局部变量有什么区别是怎么实现的…

聊一聊ThreadLocal的原理?

1.ThreadLocal创建方式 ThreadLocal<String> threadlocal1 new ThreadLocal(); ThreadLocal<String> threadlocal2 new ThreadLocal(); ThreadLocal<String> threadlocal3 new ThreadLocal(); 2.首先介绍一下&#xff0c;ThreadLocal的原理&#xff1a; 如…