`

JVM介绍

    博客分类:
  • jvm
 
阅读更多

1. 什么是JVM?

JVM是Java Virtual Machine(Java虚拟机)的缩写,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 

 

2.JVM的体系结构:

类装载器(ClassLoader):用来装载.class文件;

执行引擎:执行字节码,或者执行本地方法;

运行时数据区:包括:方法区、堆、java栈、PC寄存器、本地方法栈;

 

3. JVM执行程序的过程:

1) 加载.class文件

2) 管理并分配内存

3) 执行垃圾收集

 

4. JVM的生命周期:

a) 启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。

b) 运行。main()作为该程序初始线程的起点,任何其他线程均由该线程启动。JVM内部有两种线程:守护线程和非守护线程,main()属于非守护线程,守护线程通常由JVM自己使用,java程序也可以表明自己创建的线程是守护线程。 

c) 消亡。当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使用Runtime类或者System.exit()来退出。

 

5. JVM运行时数据区:

PC寄存器:PC寄存器是用于存储每个线程下一步将执行的JVM指令,如该方法为native的,则PC寄存器中不存储任何信息。

JVM栈:JVM栈是线程私有的,每个线程创建的同时都会创建JVM栈,JVM栈中存放的为当前线程中局部基本类型的变量(java中定义的八种基本类型:boolean、char、byte、short、int、long、float、double)、部分的返回结果以及Stack Frame非基本类型的对象在JVM栈上仅存放一个指向堆上的地址。

堆(Heap):它是JVM用来存储对象实例以及数组值的区域,可以认为Java中所有通过new创建的对象的内存都在此分配,Heap中的对象的内存需要等待GC进行回收。

方法区域(Method Area):方法区域存放了所加载的类的信息(名称、修饰符等)、类中的静态变量、类中定义为final类型的常量、类中的Field信息、类中的方法信息,当开发人员在程序中通过Class对象中的getName、isInterface等方法来获取信息时,这些数据都来源于方法区域,同时方法区域也是全局共享的,在一定的条件下它也会被GC,当方法区域需要使用的内存超过其允许的大小时,会抛出OutOfMemory的错误信息。

运行时常量池(Runtime Constant Pool):存放的为类中的固定的常量信息、方法和Field的引用信息等,其空间从方法区域中分配。

本地方法堆栈(Native Method Stacks):JVM采用本地方法堆栈来支持native方法的执行,此区域用于存储每个native方法调用的状态。

 

 

 

 

 

分享到:
评论

相关推荐

    java虚拟机简介 jvm介绍

    Java虚拟机(JVM)是可运行Java代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java...本文首先简要介绍从Java文件的编译到最终执行的过程,随后对JVM规格描述作一说明。

    jvm介绍基础,构成和调优

    Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上...

    jvm 详细介绍,了解jvm各个组成部分和功能

    jvm 详细介绍,了解jvm各个组成部分和功能

    jvmgc过程介绍

    jvmgc过程介绍(jpg)

    全面了解JVM组成底层工作原理以及数据结构

    JVM介绍入门到深入,通过全面了解JVM组成底层工作原理以及数据结构,在今后JVM深入分析中全面提升运行性能

    JVM基础.doc

    • JVM指令介绍,获得ClassLoader的途径,CAS指令由硬件提供 • 并发程序设计实现的基础 • 486之后并不需要锁总线 • 基于MESI缓存⼀一致性协议 如果不声明volatile,变量装载到本地变量 中,或者cpu cache中,多...

    JVM的内存机制介绍.doc

    本文分为两个部分: 1,JVM specification s(JVM规范) 对JVM内存的描述 2,Sun的JVM的内存机制。

    jvm 调优的详细介绍

    好东西,jvm 调优的详细介绍,让你瞬间明白,打车大图

    深入JVM内核 - 原理、诊断与优化

    在本课程中个,将详细介绍JVM的基本原理、组成以及工作方式,并配合实际案例,介绍相关的调优技巧。 课程大纲: 第一课 初识JVM JVM分类 Java语言规范 JVM规范 介绍JVM的基本知识和发展历史,并介绍了Java语言...

    JVM入门实战/arthas实战/垃圾回收算法/垃圾回收器/jvm内存模型分析

    本系列课程从JVM基础到...1.1 JVM重要参数介绍 1.2JVM参数调优 1.3JVM参数设置思路1.4JVM调优常用指令说明 第七节:JVM项目实战 1.1案例背景 1.2排查步骤 1.3.arthas 1.3.1.arthas简介 1.3.2.arthas实战 1.3总结

    01 JVM 与 Java 体系结构.pptx

    Java 技术体系和 JVM 整体概览. 对 JVM 有一个整体认知, 打好 JVM 学习的基础。内容包括体系结构, JVM相关基础知识和流行的 JVM 介绍。

    Zing JVM for ultra low latency

    低延时领域商用jvm介绍

    jvm详细介绍以及性能优化方法

    深入java虚拟机第二版pdf,jvm性能调优总结,tomcat性能调优

    JVM调优实战(转)

    本文档旨在介绍JVM调优实战的各个方面,包括JVM内存、垃圾回收、性能优化等。通过对JVM内存结构、垃圾回收机制和性能优化策略的详细讲解,帮助读者深入理解JVM的工作原理和优化方法。 1. JVM内存结构 JVM的内存...

    JVM与Hadoop介绍

    Java虚拟机与Hadoop的介绍,附带一些源码分析

    垃圾回收器与JVM性能监控工具介绍以及java多线程安全性介绍ppt

    垃圾回收器与JVM性能监控工具介绍垃圾回收器与JVM性能监控工具介绍ppt。

    JVM必知必会

    JVM必知必会 介绍了关于java虚拟机JVM相关的必备知识,是学习java虚拟机的入门材料

    JVM指令手册详细完整版.pdf

    每个系列命令都有其特定的功能和用途,下面我们将逐一详细介绍每个系列命令的作用和用法。 一、未归类系列 未归类系列命令主要包括nop命令和aconst_null命令。nop命令的作用是啥都不做,而aconst_null命令的作用是...

Global site tag (gtag.js) - Google Analytics