必知必会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经验。

目录
相关文章
|
7月前
|
存储 缓存 Java
JVM简单总结
Java运行时数据区包括:程序计数器、虚拟机栈、本地方法栈、堆空间和方法区(元空间)。这些区域各自承担不同的功能,如存储局部变量、方法调用信息、对象实例及运行时常量池等。其中,堆空间分为伊甸园、幸存者和老年代区域,方法区则包含类型信息、静态变量等。
|
3月前
|
存储 Java 编译器
深入理解JVM(四)
深入理解JVM(四)
|
6月前
|
存储 算法 Java
JVM的简单介绍
JVM的简单介绍
38 1
|
7月前
|
存储 算法 Java
JVM简单理解
JVM简单理解
42 0
|
7月前
|
Java
|
存储 缓存 安全
JVM的组成
JVM(Java虚拟机)是Java程序运行的核心组件,它负责将字节码文件解释成可执行代码并提供运行时环境。
119 0
|
存储 缓存 算法
JVM初探
JVM初探
109 1
|
存储 安全 算法
jvm的组成
jvm的组成
82 0
|
存储 算法 前端开发
浅识JVM
本篇文章,博主分享的是在面试中JVM常考的考点,希望这篇文章能够对你有用。
137 0
浅识JVM