美文网首页
JVM运行原理,jvm内存结构与垃圾回收机制

JVM运行原理,jvm内存结构与垃圾回收机制

作者: 魔_5659 | 来源:发表于2018-07-11 15:25 被阅读0次

一 jvm运行原理

1.JVM是可运行java代码的假想计算机,包括一套字节码指令集,一组寄存器,一个栈,一个垃圾回收,堆,和一个存储方法域。

2.在虚拟机上是无法直接运行.java文件,因为虚拟机不能识别.java文件。在虚拟机运行之前需要先将.java文件用编译器生成.class文件,即生成字节码文件。.class是可以被虚拟机识别并运行的。所以虚拟机运行的是编译器生成的.class文件,而不是.java文件本身。

二 jvm的内存结构

根据jvm规范,可以将jvm的内存分为六个区域:

PC寄存器(即程序计数器),方法区,堆区,虚拟机栈,本地方法栈,常量池

2.1 程序寄存器

即PC寄存器,是一个很小的内存区域。用来存储字节码行号,程序的推进就是通过更改程序计数器的的值读取下一条要执行的指令。

2.2方法区

存放了要加载的类,静态变量,构造函数,final定义的常量,类中的方法和字段等信息。GC也会在此执行,只是很少。超出内存时会抛出异常。

2.3堆区

Gc最频繁的区域,堆区由所有线程共享,在虚拟机启动时创建。主要存放对象实例及数组,以及所有new出来的对象。

2.4虚拟机栈

占用的是操作系统的内存,每个线程对应一个虚拟机栈,它是线程私有的,随着线程的创建而创建,随着线程的消失而消失,用来存放局部变量,动态链接,操作数和方法出口信息等等。

2.5本地方法栈

用于支持native方法的执行,与虚拟机栈的机制一致。唯一的区别是虚拟机栈执行java方法本地方法栈执行native方法。

2.6常量池

常量池在java用于保存在编译期已确定的,已编译的class文件中的一份数据。它包括了关于类,方法,接口等中的常量,也包括字符串常量,如String s = "java"这种申明方式;当然也可扩充,执行器产生的常量也会放入常量池,故认为常量池是JVM的一块特殊的内存空间。

三 Gc机制(垃圾回收机制)

随着程序的运行,内存中的实例对象及变量等占据的内存越来越多。如果不及时进行回收,将使得程序运行的几率底下甚至系统的异常。在上述的五个区域中,程序计数器和虚拟机栈以及本地方法栈随着程序的生命周期自动销毁,堆区以及方法区需要对那些不存在任何引用的对象,变量等等垃圾进行处理。

相关文章

  • JVM垃圾回收

    JVM垃圾回收 内存结构 要想理解jvm的垃圾回收机制,必须先知道java虚拟机的内存结构。 程序计数器程序计数器...

  • JVM

    JVM之内存模型JVM之对象定位与访问JVM之Java垃圾回收机制JVM之类加载

  • JVM探秘之旅(壹)

    本文准备从以下几个方面去讲解JVM:1)JVM内存结构解析2)JVM的类加载机制剖析3)GC垃圾回收机制 JVM内...

  • 六、JVM系列(垃圾回收器)

    前言 前面文章我们介绍了JVM的内存结构、JVM的垃圾回收机制,那么这篇文章我们来了解进行回收垃圾的垃圾回收器 串...

  • java(内存和gc)

    JVM内存和gc机制JVM内存 Java垃圾回收概况 Java GC(Garbage Collection,垃圾收...

  • JVM学习笔记(3)-垃圾收集算法

    JVM学习笔记(1)-内存管理机制 JVM学习笔记(2)-内存分配与回收 垃圾收集算法 JVM垃圾收集算法有四种:...

  • Jvm内存

    本篇重点讲解JVM内存管理和垃圾回收,如下图JVM的基本结构: 首先理解下JVM工作原理 JVM俗称java虚拟机...

  • JVM运行原理,jvm内存结构与垃圾回收机制

    一 jvm运行原理 1.JVM是可运行java代码的假想计算机,包括一套字节码指令集,一组寄存器,一个栈,一个垃圾...

  • java核心知识点,pdf文档,让你彻底告别重复的CRUD

    JVM 线程 JVM内存区域 JVM运行时内存 垃圾回收与算法 Java四种引用类型 GC 分代收集算法 VS 分...

  • 常见面试题

    JVM JVM 内存结构 垃圾收集策略与算法记回收,标记清除,复制算法 HotSpot 垃圾收集器 cms hos...

网友评论

      本文标题:JVM运行原理,jvm内存结构与垃圾回收机制

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