前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java虚拟机编译原理一:初识"JVM"

Java虚拟机编译原理一:初识"JVM"

作者头像
浩说编程
发布2021-08-17 17:39:59
3530
发布2021-08-17 17:39:59
举报

Java虚拟机部分属于Java的高级编程知识,所以学习这一部分内容需要读者有一定的编程基础。

作为系列的第一篇,我们先简单认识一下JVM,什么是JVM?JVM是做什么的?JVM的作用是什么?

1

虚拟机与计算机的关系

在计算机的硬件系统中,机器码是唯一能够被识别并执行的计算机语言。所以对于高级编程语言(如Java、C++、Python)编写的代码,需要通过一个"托管环境"负责将代码转换成计算机能够理解的机器码,程序才得以在计算机上运行。

而这个"托管环境"就是"虚拟机--VM",于是引出本篇的主角:Java虚拟机--JVM。

2

三种JVM

目前的JVM产品共来自以下三家公司:

Sun公司自己的HotSpot;

BEA公司的JRockit;

IBM公司的J9 JVM;

在JDK1.7及之前的版本采用HotSpot,之后由于Sun公司和BEA公司都被oracle收购,自JDK1.8起采用Sun公司的HotSpot和BEA公司的JRockit两个JVM中精华形成jdk1.8的JVM。

3

JVM为编程人员提供的福利

垃圾回收机制--GC

在我们使用计算机的时候,如果硬盘空间满了我们需要手动删除电脑上的文件来重新获取存储空间。

但对于Java程序来说,我们通常不需要手动去清理空间,这项"福利"就源自JVM提供的自动垃圾回收机制。

内存分类管理

就像我们使用计算机需要用不同文件夹来分类存放文件,JVM为我们提供了自动的内存分类管理,用以优化java程序的内存使用。

需要注意的是:GC和内存分类管理是JVM的重中之重,在之后的文章中会作详细的拆解。

除此之外,JVM还提供了诸如数组越界、动态类型、安全权限等等的动态检测,使我们免于书写这些无关业务逻辑的代码。

本篇的内容相对简短一些,旨在帮助读者对JVM预先建立一个简单的认识,之后将做深入的拆解。

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

本文分享自 浩说编程 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档