JVM | 快速入门

本文借鉴《深入理解Java虚拟机》与《Java虚拟机规范》进行编写,欢迎阅读与讨论

JVM是什么

JVM即Java虚拟机(Java Virtual Machine),万事万物都要有其运行的环境,对于Java虚拟机来说,他为Java语言提供了运行环境,同时他自身也需要运行在操作系统之上。这样的好处就在于将编程语言和操作系统进行了解耦合,我们程序员不用在关注于操作系统的变换,只需要专注于和Java虚拟机交互。

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启动
通过引导类加载器(bootstarp class loader)创建一个初始类来完成,这个类是由虚拟机具体实现指定的。

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

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

  • 程序正常结束
  • 程序执行过程中遇到异常终止
  • 操作系统的导致其异常终止
  • 程序主动调用JVM退出的API(如System类的exit方法)等
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值