当前位置:首页 > Java技术 > jvm内存模型

jvm内存模型

2022年09月17日 13:04:28Java技术2

jvm内存模型 _ JavaClub全栈架构师技术笔记

 

 

JVM 内存模型是什么?
(1)JVM 内存模型共分为5个区:Java虚拟机栈、本地方法栈、堆、程序计数器、方法区(元空间)
(2)各个区各自的作用:
a.本地方法栈:用于管理本地方法的调用,里面并没有我们写的代码逻辑,其由native修饰,由 C 语言实现。
b.程序计数器:它是一块很小的内存空间,主要用来记录各个线程执行的字节码的地址,例如,分支、循环、线程恢复等都依赖于计数器。
c.方法区(Java8叫元空间,jdk7 之前叫做永久代):用于存放已被虚拟机加载的全局的数据信息,静态变量,静态方法  类加载器等数据。
d.Java 虚拟机栈:用于存储局部变量表、操作数栈、动态链接、方法出口等信息。(栈里面存的是地址,实际指向的是堆里面的对象)
e.堆:Java 虚拟机中内存最大的一块,是被所有线程共享的,几乎所有的对象实例都在这里分配内存;
(3)线程私有、公有
a.线程私有:每个线程在开辟、运行的过程中会单独创建这样的一份内存,有多少个线程可能有多少个内存

jvm内存模型 _ JavaClub全栈架构师技术笔记

 

 


Java虚拟机栈、本地方法栈、程序计数器是线程私有的
b.线程全局共享的
堆和方法区
(4)栈虽然方法运行完毕了之后被清空了,但是堆上面的还没有被清空,所以引出了GC(垃圾回收),不能立马删除,因为不知道是否还有其它的也是引用了当前的地址来访问的

 

 

 jvm内存模型 _ JavaClub全栈架构师技术笔记

 

 

先入后出原则 a先出栈 b后出栈

 

String char数组  String前面有一个地址,p.name也是指向String(name 里面也是一个int型的地址 )

堆中的对象不能直接清空,因为不知道是否有别的线程也引用了当前对象  

jvm内存模型 _ JavaClub全栈架构师技术笔记

 

 

p1 p2 指向的是同一个内存地址

jvm内存模型 _ JavaClub全栈架构师技术笔记

 

作者:lamda表达式先驱
来源链接:https://www.cnblogs.com/ZhangZiXue/p/16032705.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/42609.html

分享给朋友:

“jvm内存模型” 的相关文章

JVM内存模型及垃圾收集策略解析

JVM内存模型及垃圾收集策略解析

JVM内存模型是Java的核心技术之一,之前51CTO曾为大家介绍过JVM分代垃圾回收策略的基础概念,现在很多编程语言都引入了类似Java JVM的内存模型和垃圾收集器的机制,下面我们将主要针对Java中的JVM内存模型及垃圾收集的具体策略进行综合的分析。 一 JVM内存模型...

JVM - 双亲委派

JVM - 双亲委派

# JVM - 双亲委派 JDK版本:1.8 # 1、双亲委派机制 Java虚拟机对于class文件采用的加载策略是按需加载。也就是当需要使用该类时才会将该类的.class文件加载到内存中生成Class对象。并且加载某...

JVM——JVM大厂面试问题与解答

JVM——JVM大厂面试问题与解答

摘要 本博文主要分享在JVM中的大厂面试问题。总结相关面试问题与yu解答。帮助大家更好的学习与理解JVM的原理。同时也是分享一些有关于JVM实战的经验,帮助大家在工作中排查错误。 一、JVM的内存模型 1.1 JVM1.8内存模型 1.2 JVM内存模型中...

jvm性能调优实战 - 31从测试到上线

jvm性能调优实战 - 31从测试到上线

文章目录 Pre 开发好系统之后的预估性优化 系统压测时的JVM优化 对线上系统进行JVM监控 Pre 前面两篇文章,已经给大家介绍...

java jvm设置

2. 如何分配JVM内存设置: (1)当在命令提示符下启动并使用JVM时(只对当前运行的类Test生效):     java -Xmx128m -Xms64m -Xmn32m -Xss16m Test     (2)当在集...

JVM学习笔记——java内存模型

JVM学习笔记——java内存模型

概述 JVM规范希望定义一套java内存模型(java memory model,JMM),使得java程序在不同的硬件平台下面都能展现出一致的内存访问机制。 java内存模型规定所有变量保存在主内存中,每个线程有自己的工作内存。线程的工作内存中保存了该线程使用到的变量的主内存拷...

JVM-五大区

JVM-五大区

Java程序执行流程: 谈一谈Java内存区域的划分实际上是指JVM内存区域的划分,首先Java先介绍一下Java程序具体执行的过程 如上图所示,首先Java源代码们(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然...

jvm查看full gc频率

jdk版本1.8 查看java进程 ]#jps 24019 user.jar 25885 Jps 26958 Main 目标进程24019 监控jvm,每5秒打印一次 ]# jstat -gc 24019 5000 S0C S...

十、JVM常用启动参数

 一、JVM启动参数共分为三类:   1.其一是标准参数(-),所有的JVM实现都必须实现这些参数的功能,而且向后兼容;   2.其二是非标准参数(-X),指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置。但是在生...

Java—JVM详情

Java—JVM详情

JVM目录 JVM介绍 JVM的位置 JVM的体系结构 类加载器 加载过程 双亲...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。