博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内存池与JVM内存模型
阅读量:2291 次
发布时间:2019-05-09

本文共 980 字,大约阅读时间需要 3 分钟。

可以这样理解:JVM内存模型其实就是JVM在启动的时候从操作系统内存中要了一块大内存,然后将这个大内存分成五个区域:方法区、堆区、虚拟机栈、本地方法栈、程序计数器。

 

注意区分JVM内存模型与JMM(Java Memory Model)

 

这次课的目标就是把这张图讲透

JVM内存模型.png

 

四个名词

 

class文件

 

即硬盘上的.class文件

 

class content

 

类加载器将硬盘上的.class文件读入内存中的那一块内存区域

 

Class对象

Class
clazz = Test_22.class;

对象

Test_22 obj = new Test_22();

 

JVM内存模型

 

方法区

 

需要搞清楚方法区、永久代、元空间三个名词之间的关系

 

方法区是规范,永久代、元空间是具体实现。或者说,方法区是Java中的接口,永久代、元空间是Java中接口的实现类。

 

再说下永久代、元空间之间的区别

 

永久代:jdk8之前方法区的实现,在堆中,用于存放类的元信息,及InstanceKlass类的实例

元空间:jdk8及之后方法区的实现,在OS内存中,用于存放类的元信息

 

虚拟机栈

 

JVM是软件模拟的虚拟机,基于栈运行

 

虚拟机栈中又有很多栈帧,栈帧又被分成了其他区域。理解虚拟机栈的核心就是理解栈帧中的这几个区域

 

1、局部变量表

2、操作数栈

3、动态链接

4、返回地址

5、附加信息

 

具体细节见课堂上操作实战

 

程序计数器

 

字节码指令前面的index

image.png

 

堆区

 

内存模型中最核心的区域,也是JVM调优重点关注的区域

image.png

 

本地方法栈

 

JAVA通过JNI调用C、C++动态链接库需要的栈,随着socket的发展,JNI技术已经用得非常非常少。

 

this指针是何时赋值的

 

执行引擎在执行带有操作数的字节码指令时,会有一个构造运行环境的过程。this指针就是在构造运行环境过程中实现的

 

具体细节见课堂上操作实战

之间的关系

 

虚拟机栈与方法区

 

如何理解虚拟机堆方法区的引用:动态链接

 

虚拟机栈与堆区

 

如何理解虚拟机栈对堆区的引用:局部变量

 

方法区与堆区

 

如何理解方法区与堆区的双向引用:

  • 方法区->堆区:静态引用类型的属性
  • 堆区->方法区:klass pointer

 

具体细节见课堂上操作实战

 

练习

 

1、将课堂上的知识点整理成笔记、文章

2、如果有能力,可以使用C、C++实现一套自己的JVM内存模型

转载地址:http://tfbnb.baihongyu.com/

你可能感兴趣的文章
分享一次止于三面的阿里面试之旅,是我不配呀
查看>>
美团工作7年,精华全在这份学习笔记里了,已成功帮助多位朋友拿到5个大厂Offer
查看>>
淘宝架构师又出神作,Java异步编程实战笔记总结,彻底被征服
查看>>
深入OAuth2核心源码,阿里大佬的Spring Security手册惊呆我了
查看>>
普本毕业,阿里五面成功斩下offer,名校出身的我究竟输在哪?
查看>>
最新“美团+字节+腾讯”三面面经,你能撑到哪一面?
查看>>
三年Java开发,年底跳槽挂了阿里和字节,却收获美团offer,分享大厂面试心得
查看>>
4面全过之后还有交叉面,阿里面试也太“刺激”了
查看>>
手慢无!出自美团内部的精通Java并发编程手册,打倒高并发
查看>>
一线互联网大厂面经分享:阿里三面+头条四面+腾讯二面+美团四面
查看>>
快手三面(Java岗),意向已拿,盘点一下面试官都问了些啥?
查看>>
“刚刚”顺丰校招二面+美团社招三面面经,分享给准备冲刺金三银四的你
查看>>
多位阿里专家整理总结多线程与高并发实战开发手册,你都具备了?
查看>>
4面字节跳动,终于“跳进去”了 分享一波字节的面经
查看>>
阿里、字节等大厂Java面试汇总:心态准备+简历+50道高频面试题+面试经验总结
查看>>
阿里架构师吐血整理:从源码到架构的Spring全系列笔记,已全部分享
查看>>
2021年最新京东技术岗现场三面:jvm调优+高并发+算法+网络+数据库+设计模式
查看>>
有了阿里P8大牛手写的720页Java高级面试手册,offer稳了
查看>>
面试官都爱问的Spring源码:Spring与Mybatis高级整合
查看>>
好文推荐:微服务架构下的分布式事务基础入门
查看>>