美文网首页
Jvm从零开始(二)

Jvm从零开始(二)

作者: 颜之有雾 | 来源:发表于2017-12-23 18:24 被阅读0次

Jvm的内存结构。
废话不多说,先上一张图


1135193-20170404105818910-121962267.jpg

jvm的主要组成部分:

  • 程序计数器(Program Counter Register)
  • 虚拟机栈(VM Stack)
  • 本地方法栈(Native Method Stack)
  • 方法区(Method Area)
  • 堆(Heap)

咱们分别来说说其作用:

程序计数器(Method Area)

顾名思义,就是计数用的,这个“数”指的就是程序下一个要执行的指令的位置(内存地址)。值得一提的是它是线程私有的,就是说在多线程环境下,每个线程都有自己的计数器,互相不会干扰。如果正在执行的是Native方法,那它的值为空。

虚拟机栈(VM Stack)

虚拟机栈和计数器一样,也是线程私有的。用来存储方法数据和部分运算结果,每当程序调用一个方法,就会触发入栈,这个方法返回时触发出栈,进出方式为“后入先出”。

本地方法栈(Native Method Stack)

和上面虚拟栈的功能一模一样,区别就是虚拟栈为java方法服务,这个为Native方法服务。

方法区(Method Area)

类(class)的信息都会储存在这里。当类加载器从类文件中提取信息之后,就会将其存到这里。咱们下一节聊聊类的加载机制。
和上面几个不同的是,方法区是线程共享的(显而易见)。

堆(Heap)

堆同样是线程共享的区域,所有java实例或对象都会存储在这里。也是GC(垃圾收集机制,方法区中也存在垃圾收集)大显身手的地方。

简单的介绍就到这,下节开始咱们进入正题。

相关文章

  • Jvm从零开始(二)

    Jvm的内存结构。废话不多说,先上一张图 jvm的主要组成部分: 程序计数器(Program Counter Re...

  • 【进阶JVM】32个Java虚拟机知识点

    本文来源:《从零开始带你成为JVM实战高手》 第二周答疑汇总 问题 既然栈帧存放了方法对应的局部变量的数据,也包括...

  • 手拉手教你实现一门编程语言 Enkel, 系列 1

    本文系 Creating JVM language 的翻译, 原文作者 Jakub 花费 20 周的时间,从零开始...

  • 超级详细的JVM深入讲解

    JVM从零开始:Java体系结构--认识Java(一)https://www.sudo.ren/article/7...

  • Jvm从零开始(一)

    jvm是java平台的核心。是实现跨平台的关键。我们先来说说jvm和java的关系。 一个Java应用在系统中的执...

  • JVM介绍系列文章

    知晓JVM系列(一):对JVM总览知晓JVM系列(二):JVM内存管理机制与优化初探知晓JVM系列(三) :常用的...

  • JVM与Dalvik

    一、JVM与Dalvik 二、JVM JVM 全称 Java Virtual Machine,也就是我们耳熟能详的...

  • jvm垃圾清理机制

    更多参考GC及JVM参数浅析JAVA的垃圾回收机制(GC)JVM系列三:JVM参数设置、分析jvm系列 (二) -...

  • JAVA虚拟机(JVM)三:类加载器子系统

    JAVA虚拟机(JVM)系列:JAVA虚拟机(JVM)一:了解JAVA体系结构JAVA虚拟机(JVM)二:JVM工...

  • JVM

    简介 Jvm 系列一:Java类的加载机制Jvm系列二:JVM内存结构 --内存泄漏与内存溢出Jvm系列三:GC算...

网友评论

      本文标题:Jvm从零开始(二)

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