前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JVM系列(一):JVM基本概念知识笔记

JVM系列(一):JVM基本概念知识笔记

作者头像
IT技术分享社区
发布2022-05-24 15:21:12
3590
发布2022-05-24 15:21:12
举报
文章被收录于专栏:IT技术分享社区

1、什么是JVM?

JVM即Java虚拟机,可以理解为一种抽象计算机,它拥有一个指令集,在运行时操作各种内存区域。JVM对Java语言一无所知,它只知道一种特定的二进制格式,即类文件格式,我们写好的Java程序最终交给JVM执行的时候会被编译成二进制格式的类文件,JVM只能读取二进制格式的类文件,所以任何编程语言只要编译后的格式符合要求,本质上都可以在JVM上运行。

2、JVM的运行位置

JVM是运行在操作系统之上的软件。支持跨平台。

3、JVM的版本

HotSpot VM:JDK 默认内置 JVM 是 HotSpot VM,应用最广泛的JVM,大家最常用的就是这个。

BEA JRockit VM:JRockit VM由BEA公司开发。后BEA公司在2008年被Oracle收购,JRockit专注于服务端应用,JRockit内部不包含解释器实现,全部代码都靠解释编译器(JIT)编译后执行

IBM J9 VM :与HotSpot接近,服务器端、桌面应用、嵌入式等多用途VM,广泛用于IBM的各种Java产品号称是世界上最快的Java虚拟机。

4、JVM的体系结构

类加载器:在JVM启动时或者是在类运行时将需要的class文件加载到JVM中。

执行引擎:负责执行class文件中包含的字节码指令,相当于实际机器上的CPU

内存区域:jvm将内存划分为若干个区以模拟实际机器上的存储、记录和调度功能模块

本地方法调用:调用C或C++实现的本地方法的代码返回相应的结果

5、JVM的生命周期

5.1 虚拟机的启动

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

5.2 虚拟机的执行

一个运行中的Java虚拟机有着一个明确的任务:执行Java程序

程序开始执行时JVM才运行,程序结束时它就停止。

其实执行一个Java程序的时候,本质上执行的是一个叫做JVM的进程。

5.3 虚拟机的退出

  • 程序正常执行结束
  • 程序在执行过程中遇到了异常或错误而被迫异常终止。
  • 由于操作系统自身出现错误而导致Java虚拟机进程终止。
  • 某线程调用Runtime类或System类的exit方法,或Runtime类的halt方法,并且Java安全管理器也允许这次exit或halt操作。
  • JNI(Java Native Interface)规范描述了用JNI Invocation API来加载或卸载 Java虚拟机时,Java虚拟机的退出

IT技术分享社区

个人博客网站:https://programmerblog.xyz

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明互联网技术分享社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、什么是JVM?
  • 2、JVM的运行位置
  • 3、JVM的版本
  • 4、JVM的体系结构
  • 5、JVM的生命周期
    • 5.1 虚拟机的启动
      • 5.2 虚拟机的执行
        • 5.3 虚拟机的退出
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档