JVM:入门简介

目录

    • JVM是什么
    • JVM学习路线
    • Java技术体系
    • JVM的生命周期

JVM是什么

JVM即Java虚拟机(Java Virtual Machine),其本质上就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。

JVM 是可运行 Java 代码的假想计算机,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。JVM 是运行在操作系统之上的,它与硬件没有直接的交互。

Java语言的可移植性正是建立在Java虚拟机的基础上。任何平台只要装有针对于该平台的Java虚拟机,字节码文件(.class)就可以在该平台上运行。这就是“一次编译,多次运行”。

可以这样说,Java语言不一定是最好的语言,但是Java虚拟机是最牛逼的虚拟机。

JVM学习路线

接下来一段时间我将整理一下JVM的核心知识点,也欢迎大家一起讨论交流。

主要分为以下几部分:
1 内存管理篇 [本篇链接]
介绍虚拟机中内存是如何划分的以及每一部分的作用。另外还会介绍JVM执行引擎。

2 垃圾回收篇 [暂未更新]
介绍内存分配与回收,垃圾回收算法和垃圾回收器

3 字节码指令篇 [暂未更新]
介绍一些常见的字节码指令及其作用。

4 类加载机制篇 [暂未更新]
讲解Class文件结构、类加载机制、类加载器工作原理等。

5 性能监控与调优篇 [暂未更新]
介绍常见的JVM分析的工具以及调优办法

可以关注下我的JVM专栏,我会不定期的去更新后面的内容。

Java技术体系

Java技术体系包括以下几个组成部分:

  • Java程序设计语言(包括Java、Clojure、Groovy等运行在JVM上的语言)
  • 各种硬件平台上的Java虚拟机
  • Class文件格式
  • Java API类库
  • 来自商业机构和开源社区的第三方Java类库

我们可以把Java程序设计语言、Java虚拟机、Java API类库这三部分统称为JDK(Java Development Kit),JDK是用于支持Java程序开发的最小环境。另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境。如下图:
JVM:入门简介_第1张图片

JVM的生命周期

1 JVM启动
通过引导类加载器(bootstarp class loader)创建一个初始类来完成,这个类是由虚拟机具体实现指定的。

2 JVM执行
Java虚拟机的任务就是执行Java程序,程序开始执行他就运行,程序结束时他就停止。
执行一个Java程序真正执行的其实就是一个Java虚拟机进程。

3 JVM退出
大概有以下几种情况:

  • 程序正常结束
  • 程序执行过程中遇到异常终止
  • 操作系统的导致其异常终止
  • 程序主动调用JVM退出的API(如System类的exit方法)等

你可能感兴趣的:(JVM,java,jvm)