`

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虚拟机概述 Java虚拟机(JVM)是一种假想计算机,其主要功能在于提供一个统一的平台来运行Java代码。只要根据JVM规范将解释器移植到特定的硬件平台上,就可以确保任何编译后...

    jvm介绍基础,构成和调优

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

    深入JVM整理文档

    #### 1、Java与JVM介绍 **JVM**,即Java Virtual Machine(Java虚拟机),是用于计算设备的一种规范,它是一个通过在实际计算机上仿真模拟各种计算机功能来实现的虚拟计算机。Java语言的一个重要特点是与平台的无关...

    SuperWaba -JVM虚拟机

    JVM介绍 Java虚拟机是Java平台的核心组成部分,它负责执行字节码,提供了一个与硬件平台无关的运行环境。JVM通过将高级语言转换成机器可以理解的指令,实现了跨平台的"一次编写,到处运行"的理念。 ### 2. ...

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

    ### JVM 详细介绍:掌握 JVM 的各个组成部分与功能 #### 一、Java 源文件编译及执行 Java 应用程序的核心在于源文件的编译与执行。不同于 C/C++ 这类需要针对不同平台进行编译的语言,Java 采用了一种更为灵活的...

    jvmgc过程介绍

    jvmgc过程介绍(jpg)

    JVM与Hadoop介绍

    ### JVM与Hadoop介绍 #### 一、Java虚拟机(JVM)概述 Java虚拟机(JVM)是执行Java字节码的虚拟机环境。它提供了一个独立于硬件平台的运行时环境,使得Java应用程序能够在任何支持JVM的操作系统上运行。 #### 二、...

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

    Java虚拟机(JVM)是Java程序运行的核心,它负责解释和执行字节码,为开发者提供了跨平台的运行环境。深入理解JVM对于优化Java应用程序的性能至关重要。本篇文章将详细探讨JVM的工作原理,并提供一些有效的性能优化...

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

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

    JAVA文件编译执行与虚拟机(JVM)介绍

    ### JAVA文件编译执行与虚拟机(JVM)介绍 #### 关键知识点概述: 1. **JAVA文件的编译与执行**:JAVA程序首先通过编译器转换为中间代码(字节码),然后由JVM解释执行。 2. **JVM的角色与功能**:JVM作为JAVA程序...

    jvm监控工具介绍

    JVM(Java Virtual Machine)是Java程序运行的基础,它负责解释和执行字节码,管理内存,以及处理线程和类加载。为了有效地监控和调试Java应用程序,Oracle JDK提供了多种强大的命令行工具,如jconsole、jmap、jstat...

    JVM基础.doc

    本节将详细介绍JVM的基本概念及其核心技术——HotSpot。 **HotSpot VM** 是Oracle公司提供的一个高性能Java虚拟机实现,它具有以下特点: - **主要实现语言**:C++ - **执行模式**:采用了解释器和编译器混合的工作...

    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 介绍。

    JVM监控工具使用入门

    本文将详细介绍JDK自带的一些强大的JVM监控工具,包括jconsole、jvisualvm以及Oracle JRockit Mission Control (JRMc),并指导如何利用这些工具进行本地和远程JVM监控。 #### 监控工具介绍 ##### jconsole ...

    jvm 调优的详细介绍

    本文将详细介绍几种常用的垃圾收集(GC)策略及其配置方法,并深入探讨如何针对不同的应用场景选择合适的策略。 #### 常见的GC策略 在Java虚拟机中,垃圾收集主要分为两大阶段:新生代垃圾收集和老年代垃圾收集。...

    Java JVM Instruction Set

    对于Java完全陌生的读者,可以参考作者提供的Java教程([http://heather.cs.ucdavis.edu/∼matloff/java.html](http://heather.cs.ucdavis.edu/%7ematloff/java.html)),这是一份简短的介绍,旨在快速帮助读者了解...

Global site tag (gtag.js) - Google Analytics