必知必会JVM一-什么是JVM?

简介: 必知必会JVM一-什么是JVM?

1. 前言


大家都知道,Java程序设计语言最早的口号就是,Write Once,Run Anywhere,一次编写,到处运行。只实现一次编码。可以再任何平台运行。那就吸引了大批的开发者进行尝试,不需要在为不同的操作系统上做适配。那么JAVA是怎么实现这种方式的呢?C语言我只编写了一次,也可以在windows和linux下运行呢?那什么叫跨平台呢?我们来以次解答。


2.跨平台的方式


跨平台主要有两种方式,一种是运行跨平台(JAVA),一种是编译跨平台(C,GO)。



2020052417560386.jpg


编译跨平台


编译跨平台例如c语言,程序写好之后,在windows下编译成exe,在linux编译成可以执行文件.这就是为什么C写一次也可以在不同的系统下进行运行了。但是需要在对应的系统上面对源码重新进行编译,如果用到了系统底层的一些函数,如果没有做兼容,可能会出现程序不兼容的问题。


20200524173224178.png


运行跨平台

运行跨平台就是指我们java程序经过编译成.class文件,由java虚拟机进行解析成对应的机器字节码,在对应的机器上运行。相当于运行JAVA的机器上都部署了一套统一的环境,由这个环境去运行JAVA程序。那提供这个环境的就是JAVA的虚拟机


20200524173214252.png


3.什么是虚拟机?


虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。


4.JAVA开发包


在大家安装JAVA JDK的时候,一般会有JDK和JRE两个比较重要的文件夹。那么热门分别是什么呢。可以见下图。

20200524173531410.png

我们平时开发依赖的是JDK,因为它提供了很多的工具包。还有一些常用的命令工具。JRE是JAVA的基本运行环境。他们的对应关系可以见官网的这张图。


20200524174207525.png


课件JDK其实是包含JRE的。单JDK比JRE多了一些工具命令。因此以后面试官再问你JDK和JRE是什么区别的时候,别再说他们俩是一样的东西了。

5、为什么学习JVM

既然JVM是JAVA已经给我们提供好了,那么我们为什么要学习JVM呢?


20200524175152613.png


主要想精通JAVA肯定要了解JAVA的运行原理啦,并且对于代码优化以及OOM异常等各种问题排查都能提供很多的思路。当然,最重要的是为了赢得同时崇拜的目光,进行装逼啦~哈哈。



20200524175520365.gif


今天先简单介绍这里,下章我们介绍下JVM重点的运行时数据区。

 

学习JAVA的童鞋可以点个关注哈,互相交流JAVA经验。

目录
相关文章
|
5月前
|
存储 算法 Java
JVM的简单介绍
JVM的简单介绍
35 1
|
Java
JVM
JVM
79 0
|
6月前
|
存储 算法 Java
JVM简单理解
JVM简单理解
37 0
|
存储 缓存 安全
JVM的组成
JVM(Java虚拟机)是Java程序运行的核心组件,它负责将字节码文件解释成可执行代码并提供运行时环境。
109 0
|
6月前
|
缓存 算法 Java
【每日一面】关于JVM
【每日一面】关于JVM
40 0
|
存储 Java
Jvm基本组成
了解jvm基本组成
82 0
|
存储 Rust JavaScript
Jvm 必须要了解的知识
Java Virtual Machine(Java 虚拟机)有三层含义,分别是: JVM规范要求 满足 JVM 规范要求的一种具体实现(一种计算机程序) 一个 JVM 运行实例,在命令提示符下编写 Java 命令以运行 Java 类时,都会创建一 个 JVM 实例,我们下面如果只记到JVM则指的是这个含义;如果我们带上了某种JVM 的名称,比如说是Zing JVM,则表示上面第二种含义
239 0
|
存储 数据可视化 Java
JVM系列之:关于HSDB的一点心得(一)
JVM系列之:关于HSDB的一点心得(一)
650 0
JVM系列之:关于HSDB的一点心得(一)
|
Java Android开发 Windows
JVM系列之:关于HSDB的一点心得(二)
JVM系列之:关于HSDB的一点心得(二)
314 0
JVM系列之:关于HSDB的一点心得(二)