Java简单入门教程,2020-09-24

线程共享:元数据区、堆Heap;面试

线程私有:虚拟机栈、本地方法栈、程序计数器;markdown

单个CPU在特定时刻只能执行一个线程,因此多线程经过几块空间的使用,而后不断的争抢CPU的执行时间段。多线程

2、元数据空间

基本描述ide

方法元空间(方法区)在JVM启动的时候被建立,是被各个线程共享的内存空间,用于存放类和方法的元数据以及常量池,好比Class和Method。学习

在实际的开发中,常常由于加载的类太多,进而致使内存溢出问题,这样能够对元空间的大小进行扩展。线程

与堆的关系3d

Java简单入门教程,2020-09-24

元空间存放加载的类信息,当类被实例化时,堆中存储实例化的对象信息,而且经过对象类型数据的指针找到类。指针

3、堆空间

基本描述视频

JVM启动时建立堆区,是内存管理的核心区,一般状况下也是最大的内存空间,是被全部线程共享的,几乎全部的对象实例都要在堆中分配内存,因此这里也是垃圾回收的重点空间。对象

堆栈关系

Java简单入门教程,2020-09-24

栈是JVM运行时的单位,堆是存储单位,当栈中方法结束,相关对象失去全部引用后,不会立刻被移除堆空间,要等到垃圾收集器运行的时候。

4、虚拟机栈

虚拟机栈(Java栈)在每一个线程建立时都会生成一个虚拟机栈,栈的内部是一个个栈帧单元,对应Java方法的调用,其生命周期和线程周期保持一致。用来存储方法的局部遍历,部分执行结果,方法的调用和返回。

Java简单入门教程,2020-09-24

栈帧是方法执行的数据集,维持执行过程当中的各类数据信息,执行的方法依次入栈,栈顶存放当前要执行的方法,执行结束后出栈,对于栈没有垃圾回收问题。

5、程序计数器

基本描述

JVM中程序计数寄存器用来存储下一条将要执行指令的地址,执行引擎获取到指令后进行执行,是线程私有的。它能够看做是当前线程所执行的字节码的行号指示器。

Java简单入门教程,2020-09-24
Java简单入门教程,2020-09-24# 最后

更多Java进阶学习资料、2021大厂面试真题、视频资料能够点击这里获取到免费下载方式!

学习视频:

Java简单入门教程,2020-09-24

大厂面试真题:

Java简单入门教程,2020-09-24

相关文章
相关标签/搜索