Java JVM 运行机制及基本原理

JVM 基本介绍

前言

对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像 C/C++程序开发程序员这样为每一个 new 操作去写对应的 delete/free 操作,不容易出现内存泄漏和内存溢出问题。正是因为 Java 程序员把内存控制权利交给 Java 虚拟机,一旦出现内存泄漏和溢出方面的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务。


提示:以下是本篇文章正文内容,下面案例可供参考

一、JVM 的基础概念

JVM 的中文名称叫 Java 虚拟机,它是由软件模拟出计算机运行的一个虚拟的计算机。

JVM 也充当着一个翻译官的角色,我们编写的 Java 程序,是不能够被操作系统所直接识别的,这时候 JVM 的作用就体现出来了,它负责把我们的程序翻译给系统“听”,告诉它我们的程序需要做什么操作。

我们都知道 Java 的代码需要经过编译器,生成 .class 文件后,JVM 才能识别并运行它,JVM 针对每个操作系统开发其对应的解释器,所以只要其操作系统有对应版本的 JVM ,那么这份 Java 编译后的代码就能够运行起来,这就是 Java 能一次编译,到处运行的原因。

当前市面上还存在许多非常优秀的 Java 虚拟机,他们都遁循 Java 虚拟机规范,但具体的实现上各有特色,在某一个领域拥有突出的性能优势是他们最重要的买点,例如 IBM 的 J9 等等。

本文基于 HotSpot 虚拟机展开,详解它的基本原理。
Java代码编译解释过程

二、JVM 的生命周期

JVM 在 Java 程序开始运行的时候,它才开始运行,程序结束的时候它就停止。

一个 Java 程序会开启一个 JVM 进程,如果一台机器上运行3个 Java 程序,那么就会有3个运行中的 JVM 进程。

JVM 中的线程分为两种:守护线程和普通线程。

守护进程是 JVM 自己使用的线程,比如垃圾回收(GC)就是一个守护进程。

普通线程一般是 Java 程序的线程,只要 JVM 中有普通线程在执行,那么 JVM 就不会停止。

二、结束生命周期

在如下几种情况下,Java 虚拟机将结束生命周期

  1. 执行了 System.exit() 方法
  2. 程序正常执行结束
  3. 程序在执行过程中遇到了异常或错误而终止进程
  4. 由于操作系统出现错误而导致 Java 虚拟机进程终止

总结

上述是 JVM 的基础概念,可以帮助我们初步了解 JVM。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值