死磕P7: JVM内存划分必知必会(一)

这是「死磕P7」系列第 001 篇文章,欢迎大家来跟我一起 死磕 100 天,争取在 2025 年来临之际,给自己一个交代。

JVM 内存区域划分是面试常考点,属于死记硬背型,比较让人头大的是不同版本的 JDK 具有不同的划分方式,主要矛盾点就来自 方法区,永久代,元空间 这几个破玩意。

整理了一些个人觉得比较靠谱的资料,进行了一些汇总,第一方便自己记忆,第二也希望大家不要再为内存区域划分的面试而苦恼。

虚拟机规范定义

先来看一下《Java 虚拟机规范》定义的概念,规范和具体实现是两回事,可以理解为规范是接口定义,具体的虚拟机实现是接口的实现类,实现细节千差万别,如 HotSpot VM, JRockit VM, Graal VM 等等(这些知道一下就好)。

程序计数器,虚拟机栈,本地方法栈基本没啥争议点,也比较好记,并且他们是属于线程隔离的(线程独享,一人一杯奶茶,各喝各的)

主要容易搞混的是 方法区 和 堆,究其原因其实就是因为版本更新导致的,一般大家说的都是 HotSpot VM, 下面用图示的方式告诉您不同版本的区别是什么。

JDK 1.6 内存划分

JDK 1.6 JVM 运行时内存就分为方法区(也叫永久代),堆,虚拟机栈,本地方法栈,程序计数器

JDK 1.7 内存划分

JDK 1.7 中将方法区中的字符串常量池和静态变量等存储区域调整到了堆中,方法区中只保留了类型信息,划分区域仍然是方法区(也叫永久代),堆,虚拟机栈,本地方法栈,程序计数器,唯一的区别就是方法区里面放置的内容减少了,如下图

JDK 1.8 内存划分

JDK 1.8 中将方法区直接移出了 JVM 内存,直接放置到了 物理内存 中,并且改名叫元空间(Meta Space),也就没有了永久代的叫法(当然,你要称元空间就是永久代也不算错,就好比你小时候一直被大家叫:狗蛋,长大了回老家,老同学还这么叫你一样,哈哈)

为什么做这些改动?

大概了解一点就行,我们又不是设计开发 JVM 的,别人给我们啥就用啥好了!

原因大概有以下几点:

  • Oracle 收购了两种 JVM:HotSpot VM 和 JRockit VM,并且想要将它们整合,但二者方法区实现差异较大;

  • 字符串存在永久代中,容易出现性能问题和 OOM;

  • 类及方法的信息大小较难确定,永久代大小难以确定:太小易导致永久代溢出,太大则易导致老年代溢出(JVM 内存是有限的,此消彼长);

  • 永久代会为垃圾回收带来不必要的复杂度,且回收效率较低(性价比低)。

总结

JVM 内存划分一直都是考点,当然考得不仅仅是上面简单的怎么划分的,今天主要让大家彻底搞懂不同版本 JVM 之间的划分差异,做到了然于胸,不再为网上的乱七八糟的文章所困惑(感觉大家写的又对又不对,比较乱)。

下一篇我们会继续解读 JVM 的内存划分,主要介绍各区域的一些特点。

如果大家对技术感兴趣,欢迎大家链接我,一起拉个小群技术交流,一起成长。

小福利

文末小福利,作为资深囤货达人,购置或转存了上千 T 的各种资源,反正我也学不完,如有需要,可以公号: 新质程序猿 找到我,直接送您,能帮助到大家也算是有所福报吧!

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Shopee虾皮双十大促:广告到底怎么做?需要使用动态代理吗?

在Shopee虾皮下半年的大促活动中,即将到来的10.10超级品牌节就是下半年各个超级购物节的其中一个,抓住本次大促的机会,卖家就有机会在更短的决策时间内实现更高的转化。大促期间最重要的环节之一就是广告投放,而广告投放又有什么技…

公司电脑监控都监控什么?可以看到员工摸鱼吗?电脑监控功能全解析!【2024年必看】

在这个数字化时代,企业对于信息安全和工作效率的追求日益增强。 公司业务规模的扩大,员工数量激增,如何有效管理员工行为、保障企业信息安全成为了每个管理者必须面对的重要课题。 于是,公司电脑监控成为了许多企业的选择&#…

全方位洗衣洗鞋小程序系统,重塑干洗店服务新体验;

全方位洗衣洗鞋小程序系统,重塑干洗店服务新体验; 一、核心功能革新: 1.多元化下单模式:融合上门取送、到店服务、寄存网点及智能衣柜四种便捷方式,用户轻松一键下单,享受个性化服务。 2.从下单到送回,全程…

从零开始讲DDR(3)——DDRC与DDRPYH

一、DDR的使用 在之前的文章中我们介绍了DDR的基本概念,但是DDR内存的操作不仅仅是简单的数据读取和写入,它包括许多时序要求和信号调度。为了让DDR内存有效运作,系统需要在逻辑层和物理层之间进行大量的协作。我们拿出一张DDR的操作简化状态…

YOLOv8改进,YOLOv8 Neck结构引入BiFPN

摘要 模型效率在计算机视觉中变得越来越重要。本文系统地研究了神经网络架构设计选择用于目标检测,并提出了几项关键优化以提高效率。首先,提出了一种加权双向特征金字塔网络(BiFPN),它允许轻松快速的多尺度特征融合;其次,提出了一种复合缩放方法,该方法同时均匀地缩放…

数通。。。

通信:需要介质才能通信电话离信号塔(基站)越远,信号越弱。信号在基站之间传递。你离路由器越远,信号越差。一个意思 比如想传一张图片,这张图片就是数据载荷 网关,分割两个网络。路由器可以是网…

对接空号检测平台可以降低成本吗

空号检测主要关注的是电话号码的状态,如是否为空号、停机、关机等,它并不直接针对语音助手进行拦截。 呼叫中心系统对接空号检测确实可以在一定程度上降低成本,主要体现在以下几个方面: 1.提高接通率:空号检测能够剔除…

一文搞懂MES与MOM系统的区别

随着制造业信息化的不断发展,越来越多的企业开始引入信息化系统来提升生产效率与管理能力。在众多系统中,制造执行系统(MES)与制造运营管理(MOM)是最常见且重要的两种系统。然而,许多人对这两者…

增强现实系列—Diffusion Time-step Curriculum for One Image to 3D Generation

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

C++笔记---set和map

1. 序列式容器与关联式容器 前面我们已经接触过STL中的部分容器如:string、vector、list、deque、array、forward_list等,这些容器统称为序列式容器,因为逻辑结构为线性序列的数据结构,两个位置存储的值之间一般没有紧密的关联关…

灾难级漏洞:阿里云盘可看别人隐私照?2亿用户或面临隐私泄露隐患

此次事件将阿里云盘的数据安全问题推至风口浪尖,对其品牌信誉和市场地位构成严峻挑战。 转载:科技新知 原创 作者丨江蓠 编辑丨蕨影 阿里云盘惊现灾难级别bug! 9月14日晚,多名网友爆料称,可以在阿里云盘的相册中看到其…

三线城市的女玩家们不想“谈恋爱”,小游戏掘金新蓝海

女性玩家的游戏选项只有乙游吗? 在7月举办的微信小游戏开发者大会上,微信小游戏团队公布了一系列最新运营数据。数据显示,微信小游戏的用户规模已突破十亿大关。从用户画像来看,其年龄层主要集中在24至40岁之间,且三线…

一文读懂HPA弹性扩展自定义指标和缩放策略

一文读懂HPA弹性扩展自定义指标和缩放策略 目录 1 概念 1.1 什么是HPA1.2 HPA 的自定义指标(Custom Metrics)与扩展1.3 基于多指标的 HPA 1.3.1 工作原理1.3.2 例子:基于 CPU、内存和 QPS 的 HPA 配置 1.4 HPA 的扩缩容行为(Beh…

集合根据上下级关系转树结构

1、创建实体对象 public class TreeNode {private String id;private String pid;private String name;private List<TreeNode> children;public TreeNode(String id,String pid,String name){this.id id;this.pid pid;this.name name;}public String getId() {retur…

VBA日历进度

hi&#xff0c;大家好&#xff01; 经过两次台风的洗礼之后&#xff0c;我们这里终于开始降温了&#xff0c;终于感觉到秋天的存在了&#xff01;时间也在一天天的过去&#xff0c;马上要十一假期了&#xff0c;十一过了&#xff0c;就可以算着过年了&#xff0c;让今天就让我…

OpenAI o1的真正前世竟来自字节?ReFT技术超越传统的数学微调能力,让GPT实现进化

导语&#xff1a; 随着ChatGPT-o1的发布&#xff0c;大型语言模型在复杂推理上取得进展&#xff0c;但传统监督式微调&#xff08;SFT&#xff09;仍存在局限。字节跳动研究院提出的增强微调&#xff08;ReFT&#xff09;技术结合了SFT和PPO算法&#xff0c;旨在提升模型泛化能…

HCIP考试范围包含哪些内容?HCIP备考指南分享

在数字化浪潮汹涌的今天&#xff0c;网络技术已成为支撑现代社会高效运转的不可或缺之力。Huawei Certified ICT Professional(HCIP)认证&#xff0c;作为这一领域中的精英标识&#xff0c;正吸引着无数技术爱好者的目光。那么&#xff0c;那么要考取这一认证需要掌握哪些考试内…

Github上开源了一款AI虚拟试衣,看看效果

大家好&#xff0c;我是Shelly&#xff0c;一个专注于输出AI工具和科技前沿内容的AI应用教练&#xff0c;体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具&#xff0c;拥抱AI时代的到来。 前几天我们聊过关于虚拟换装的话题&#xf…

Android RecyclerView 实现 GridView ,并实现点击效果及方向位置的显示

效果图 一、引入 implementation com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.30 二、使用步骤 1.Adapter public class UnAdapter extends BaseQuickAdapter<UnBean.ResultBean, BaseViewHolder> {private int selectedPosition RecyclerView.NO_POSITIO…