探究JVM(一)JDK 8 以后内存区域的变化
引言:熟悉Java内存自动分配的机制,就更能掌握垃圾回收器的设计和工作原理。在JDK 8 版本后,JVM内存区域发生了较大的改动。在JDK 8 之前采用永久代来实现方法区,但是永久代的内存分配受制于JVM虚拟机管理的内存区域,在运行时动态大量生成类的情况下,内存容易溢出,所以在JDK 8 以后采用元空间来实现方法区。
一 JDK 6 及之前
*黑色框为线程共享区
*橙色框为线程私有区
此时,方法区存放着类型信息,运行时常量,静态变量,
二 JDK 7
在JDK 7 中,运行时数据区各个区域的划分没有变动,但是方法区中的字符串常量池和静态变量被移到堆中
(注意只是字符串常量池,不是整个运行时常量池。JVM为每个类型维护着一个常量池,字符串常量池只是整个运行时常量池的一部分。)
三 JDK 8
*黑色框为线程共享区
*橙色框为线程私有区
JDK 8 以后内存区域发生了较大的变法,此时的方法区被整个移出JVM管理的区域,采用元空间来实现方法区,元空间只受本地内存大小的限制,可以分配的内存增大,这时候就很难再产生方法区的内存溢出异常。
探究JVM(一)JDK 8 以后内存区域的变化相关推荐
- JVM面试题整理-Java内存区域与内存溢出异常、垃圾收集器和内存分配策略
参考: https://blog.csdn.net/zd836614437/article/details/64126826 https://blog.csdn.net/u011225629/arti ...
- 深入理解JVM—第二章:Java内存区域与内存溢出异常
1,概述 Java较C.C++,Java可以利用虚拟机的自动内存管理机制,避免繁琐的内存分配与回收.不容易出现内存泄漏和内存溢出问题. 内存泄漏:指程序申请到的内存空间不再归还(无法归还),可使用完该 ...
- jvm性能调优 - 02JVM中内存区域
文章目录 Pre 什么是JVM的内存区域划分? 存放类的方法区 执行代码指令用的程序计数器 Java虚拟机栈 Java堆内存 示例演示核心内存区域的全流程 其他内存区域 思考题 Pre 上一篇文章我们 ...
- 《深入理解JVM.2nd》笔记(二):Java内存区域与内存溢出异常
文章目录 概述 运行时数据区域 程序计数器 Java虚拟机栈 本地方法栈 Java堆 方法区 运行时常量池 直接内存 HotSpot虚拟机对象探秘 对象的创建 第一步 第二步 第三步 第四步 最后一脚 ...
- JVM实战与原理---内存区域分配
JVM实战与原理 目录 内存区域分配 1. 程序计数器 2. Java虚拟机栈 3. 本地方法栈 4. 堆 5. 方法区 6. 运行时常量池 内存区域分配 章节目的:明白虚拟机中的内存是如何划分?每块 ...
- jvm(2)-java内存区域
[0]README 0.1)本文转自 深入理解jvm, 旨在学习 java内存区域 的基础知识: [1]运行时数据区域 1)jvm 所管理的内存将会包括以下几个运行时数据区域 1.1)方法区:(线程共 ...
- 走进JVM【二】理解JVM内存区域
引言 对于C++程序员,内存分配与回收的处理一直是令人头疼的问题.Java由于自身的自动内存管理机制,使得管理内存变得非常轻松,不容易出现内存泄漏,溢出的问题. 不容易不代表不会出现问题,一旦内存泄漏 ...
- jvm 堆外内存_jvm┃java内存区域,跳槽大厂必会知识点
正文约: 2000字 预计阅读时间: 6分钟 文章首发于我的微信公众号:哪儿来的moon,欢迎大家关注 目录 目录 前言 正文 1.程序计数器 2.虚拟机栈 3.本地方法栈 4.堆 5.方法区 6.直 ...
- Java内存管理:Java内存区域 JVM运行时数据区
Java内存管理:Java内存区域 JVM运行时数据区 在前面的一些文章了解到javac编译的大体过程.Class文件结构.以及JVM字节码指令. 下面我们详细了解Java内存区域:先说明JVM规范定 ...
最新文章
- 嵌入式计算机与pc机架构,PC架构与嵌入式架构的录播主机的区分
- jquery实现点击a链接,跳转之后,该a链接处显示背景色
- DGL教程【三】构建自己的GNN模块
- ExtJs2.0学习系列(15)--extjs换肤
- 能使Oracle索引失效的六大限制条件
- c语言 10^30,^ 在C语言中是什么意思?
- 具体数学-第12课(数论进阶与组合数入门)
- 用栈实现队列,实现Enqueue和Dequeue方法
- 校园报修管理系统的不足与探讨
- python中的snip用法_腾讯mac截图软件Snip使用教程
- “你需要TrustedInstaller提供的权限才能对此文件进行更改” 解决方案
- 漏洞四处,苹果电脑也不再安全?(转)
- MYSQL附近的人设计思路
- 笔耕不辍 elementUI el-tree实现懒加载和直接查询实现
- Win11电脑的色盲模式如何开启?
- 前缀树——以Gin路由为例
- linux安装globalsign证书,GlobalSign 普通 OV 代码签名证书提取教程
- 大学生web前端期末大作业实例代码 (1500套,建议收藏) HTML+CSS+JS
- MySQL数据库基础——数据库基础
- (转载)32个Python爬虫项目