美文网首页
简述jvm结构

简述jvm结构

作者: 吃瓜群众西瓜 | 来源:发表于2019-04-25 13:18 被阅读0次

jvm结构:

1.程序计数器,每个线程都有自己的计数器,用于记录字节码指令的执行位置

2.虚拟机栈,用于存放栈帧,栈帧中包含,局部变量表 、操作数栈、动态链接、方法出口.每个线程都有自己的虚拟机栈.调用执行任何方法的时候,都会给方法创建栈帧,然后入栈

3.堆内存,对象信息存放其中,栈帧中的局部变量指向堆内存中的对象

4.方法区 / Metaspace,主要还是存放我们自己写的各种类相关的信息

5.本地方法栈,存储结构与虚拟机栈类似,用于jdk底层相关的局部变量之类的信息

6.堆外内存,不属于JVM的,可以在Java堆外分配内存空间。通过虚拟机的DirectByteBuffer来引用.可以提升性能

总结

最后做一点总结,我们的Java代码通过JVM来运行时:

首先一定会一行一行执行编译好的字节码指令

然后在执行的过程中,对于方法的调用,会通过Java虚拟机栈来为每个方法创建栈帧来入栈和出栈,而且栈帧里有方法的局部变量表

接着对于对象的创建,会分配到Java堆内存里去

对于类信息的存储,会放在方法区 / Metaspace这样的区域里。

另外有两块特殊的区域:

本地方法栈,是执行native方法时候用的栈,跟Java虚拟机栈是类似的

堆外内存,可以在Java堆外分配内存空间来存储一些对象

OOM的四种情况

1.Java堆溢出:heap

java.lang.OutofMemoryError:Java heap space

2.栈溢出:stack

java.lang.StackOverflowError

3.运行时常量溢出   constant

java.lang.OutofMemoryError: PermGen space

4.方法区溢出   directMemory

java.lang.OutofMemoryError: PermGen space

相关文章

  • 简述jvm结构

    jvm结构: 1.程序计数器,每个线程都有自己的计数器,用于记录字节码指令的执行位置 2.虚拟机栈,用于存放栈帧,...

  • JVM结构书目录

    JVM结构 JVM结构之运行时数据区 JVM结构之执行引擎 JVM结构之类加载子系统 JVM结构之本地方法接口(J...

  • 撩课-Java每天10道面试题第1天

    1.简述JDK、JRE、JVM? 2.JDK、JRE、JVM三者的有什么联系和区别? 3、简述Java程序编译和运...

  • 撩课-Java面试题合辑1-50题

    1.简述JDK、JRE、JVM? 2.JDK、JRE、JVM三者的有什么联系和区别? 3、简述Java程序编译和运...

  • 深入JVM内核原理-2.JVM运行机制

    1.JVM启动流程 JVM启动流程.png 2.JVM基本结构 JVM基本结构.png PC寄存器每个线程拥有一个...

  • 深入JVM关闭与关闭钩子

    简述JVM关闭通常而言,对于JVM的关闭我们很少去关注,但是了解JVM的关闭能帮我们在JVM关闭时做一些合理的事情...

  • JVM结构、GC工作机制

    JVM结构、内存分配、垃圾回收算法、垃圾收集器。 一、JVM结构 JVM的基本结构一般如下图所示: 从左图可知,J...

  • JVM内存结构和Java内存模型

    最近看到两个比较容易混淆的概念:JVM内存结构和Java内存模型 JVM内存结构JVM内存结构或者说内存模型指的是...

  • JVM原理简述

    一.运行时数据区域 Java虚拟机管理的内存包括几个运行时数据内存:方法区、虚拟机栈、堆、本地方法栈、程序计数器,...

  • 简述JVM、GC

    原文来源于:简述JVM、GC自己编写于:,先转移到“简书”。

网友评论

      本文标题:简述jvm结构

      本文链接:https://www.haomeiwen.com/subject/lxymgqtx.html