【转帖】3.JVM内存结构概述
目录
1.JVM内存结构
在JVM系列的第一篇文章中已经给出了JVM内存结构的简图,下面是JVM内存结构更加详细的图。
同样,JVM的内存结构可以分为上中下3层。
上层主要是类加载子系统,负责将字节码文件加载到内存中。
类加载又分为具体的三个环节,加载(loading)、链接(linking)、初始化(Initialization)。
将字节码文件加载到内存中需要用到类加载器。图上提到了主要的3种类加载器,引导类加载器(BootStrap ClassLoader)、扩展类加载器(Extension ClassLoader)、应用类加载器或者叫系统类加载器(Application ClassLoader)。也可以自定义类加载器。
类加载的第二个环节是链接。分为验证、准备、解析三步。
类加载的第三个环节是初始化。对静态变量的初始化。
中层是运行时数据区
包括方法区、堆区、栈区(通常所说的java虚拟机栈)、程序计数器、本地方法栈。
程序计数器每一个线程有一份。
栈区每一个每一个线程有一份。每一个线程在栈区存储的单位叫做栈帧。栈帧又分为很细节的结构,比如LV(Local Variable),称为局部变量表或者称为本地变量表;OS(Operater Stack)操作数栈;DL(Dynamic Linking)动态链接;RA(Return Address)方法返回地址。
本地方法栈,用于本地C方法的调用。
堆区,多个线程共享,最大的一块空间,也是GC重点需要考虑的空间。
方法区,多个线程共享,存放类的信息,常量信息,方法的信息,只有HostSpot才有,J9和JRockit是没有的。
下层是执行引擎
包括解释器、JIT编译器、垃圾回收器3部分。
更多JVM文章请参考我的JVM专栏:https://blog.csdn.net/u011069294/category_10113093.html
【转帖】3.JVM内存结构概述的更多相关文章
- [转帖]JVM内存结构 VS Java内存模型 VS Java对象模型
JVM内存结构 VS Java内存模型 VS Java对象模型 https://www.hollischuang.com/archives/2509 Java作为一种面向对象的,跨平台语言,其对象.内 ...
- JVM内存结构简单认知
关于JVM的面试传送门:https://blog.csdn.net/shengmingqijiquan/article/details/77508471 JVM内存结构主要划分为:堆,jvm栈,本地方 ...
- JVM内存结构详解
从java编程语言说起... 1. Java编程语言简介 1.1 编程语言概述 系统级和应用级 系统级:C,C++,go,erlang 应用级:C#,Java,Python,Perl,Ruby,php ...
- 面试~jvm(JVM内存结构、类加载、双亲委派机制、对象分配,了解垃圾回收)
一.JVM内存结构 ▷ 谈及内存结构各个部分的数据交互过程:还可以再谈及生命周期.数据共享:是否GC.是否OOM 答:jvm 内存结构包括程序计数器.虚拟机栈.本地方法栈.堆.方法区:它是字节码运行时 ...
- jvm系列(二):JVM内存结构
JVM内存结构 所有的Java开发人员可能会遇到这样的困惑?我该为堆内存设置多大空间呢?OutOfMemoryError的异常到底涉及到运行时数据的哪块区域?该怎么解决呢?其实如果你经常解决服务器性能 ...
- JVM内存结构之三--持久代
本文会介绍一些JVM内存结构的基本概念,然后很快会讲到持久代,来看下Java SE 8发布后它究竟到哪去了. 基础知识 JVM只不过是运行在你系统上的另一个进程而已,这一切的魔法始于一个java命令. ...
- JVM内存结构
前言 在Java语言开发过程中,out of memory错误是很常见的一种错误.对于JVM的内存结构有更深入的了解,更更好的帮我们排查此类问题,有效的避免此类问题发生.在JAVA 8中内存结构有进行 ...
- 管中窥豹——从对象的生命周期梳理JVM内存结构、GC调优、类加载、AOP编程及性能监控
如题,本文的宗旨既是透过对象的生命周期,来梳理JVM内存结构及GC相关知识,并辅以AOP及双亲委派机制原理,学习不仅仅是海绵式的吸收学习,还需要自己去分析why,加深对技术的理解和认知,祝大家早日走上 ...
- JVM内存结构,运行机制
三月十号,白天出去有事情出去了一天,晚上刚到食堂就接到阿里电话, 紧张到不行,很多基础的问题都不知道从哪里说了orz: 其中关于JVM内存结构,运行机制,自己笔记里面有总结的,可当天还是一下子说不出来 ...
- 【JVM】JVM内存结构 VS Java内存模型 VS Java对象模型
原文:JVM内存结构 VS Java内存模型 VS Java对象模型 Java作为一种面向对象的,跨平台语言,其对象.内存等一直是比较难的知识点.而且很多概念的名称看起来又那么相似,很多人会傻傻分不清 ...
随机推荐
- Java使用OSS实现上传文件
阿里云OSS使用 1.准备OSS 访问阿里云官网,注册并登录账户(支付宝方便一些,顺便冲点钱) 在产品分类中,找到阿里云oss 然后创建一个bucket 2.使用OSS(上传文件) 2.1在阿里云网站 ...
- GDAL使用PROJ坐标转换相关问题的总结
目录 1. 概述 2. 详论 2.1. 数据 2.2. PROJ库 2.3. 参考 1. 概述 GDAL是使用PROJ进行坐标转换的,但是很容易出现转换不了的问题,这里总结一二,以供参考. 2. 详论 ...
- GDAL数据集写入空间坐标参考
目录 1. 概述 2. 栅格数据 3. 矢量数据 1. 概述 可以通过GDAL给地理数据写入空间参考信息,不过要注意的是GDAL给矢量数据和栅格数据写入空间坐标参考的接口不太一样. 2. 栅格数据 实 ...
- 干货分享丨玩转物联网IoTDA服务系列六-恒温空调
摘要:本文主要讲述空调接入到物联网平台后,通过恒温空调控制系统,不论空调是否开机,都可以调整空调默认温度,待空调上电开机后,自动按默认温度调节. 场景简介 通过恒温控制系统,不论空调是否开机,都可以调 ...
- 基于lio-sam框架,教你如何进行回环检测及位姿计算
摘要:本篇主要解析lio-sam框架下,是如何进行回环检测及位姿计算的. 本文分享自华为云社区<lio-sam框架:回环检测及位姿计算>,作者:月照银海似蛟龙 . 前言 图优化本身有成形的 ...
- web内容如何保护:如何有效地保护 HTML5 格式的视频内容?
文章资料还没有整理完,现在还不通顺,但是可以做笔记看 HTML是用于创建web页面和web应用程序的公开标准的标记语言.HTML文件基本上是纯文本文件,这意味着软件应用程序和普通人可以轻松地创建.读取 ...
- app上架一直显示审核中状态要怎么处理?
当你提交一个应用到App Store上时,它会经历一个审核过程.在这个过程中,苹果的审核人员会检查你的应用是否符合苹果的规定和标准.这个过程通常需要几天的时间,但是如果你的应用一直显示" ...
- 活动预告| 字节跳动基于DataLeap的DataOps最佳实践
DataOps概念从2014年首次被提出,不断演化和发展,在2018 年Gartner 的数据管理成熟度曲线中确定了 DataOps,标志着 DataOps 被业界接纳和认可.随着数字化转型的推进以及 ...
- flask自定义参数校验、序列化和反序列化
项目总体结构 我的工厂函数factory.py from settings import setting from flask import Flask from models.models impo ...
- L2-029 特立独行的幸福 (25分) (简单循环 + 素数筛)
对一个十进制数的各位数字做一次平方和,称作一次迭代.如果一个十进制数能通过若干次迭代得到 1,就称该数为幸福数.1 是一个幸福数.此外,例如 19 经过 1 次迭代得到 82,2 次迭代后得到 68, ...