JVM学习(一) 基本常识和JVM架构理解

为什么使用JVM

上学的时候我们都知道JAVA其中一个特性就是可移植性。而JAVA之所以具有该特性就是因为JVM的存在。
JAVA平时我们编译时是首先生成的字节码class文件,再通过JVM虚拟机生成CPU可直接读取的机器码。

机器码是由电脑CPU直接读取的操作指令,速度快,但一般从业人员无法直接编写
字节码是一种中间状态的二进制码,需要直译器进行转译后才能成为机器码

而JAVA程序只要编译一次就可以在不同的操作系统上运行也是因为JVM虚拟机屏蔽了操作系统之间的差异。

JDK、JRE、JVM之间的关系

在这里插入图片描述

  • JDK是java开发工具包,其中包含了JRE。我们开发时就需要安装JDK
  • JRE是JAVA 运行时环境,如果在服务器中不需要进行开发的主机,我们可以单独安装JRE
  • JVM无法单独安装,安装JRE或者JDK自动就安装了JVM

JVM与Hotspot的区别

JVM是一种规范
Hotspot是一种商用的JVM产品,初次之外还有Jrockit,J9
在这里插入图片描述
OracleJDK默认使用的就是Hotspot

JVM和JAVA的关系

首先JVM只认识.class文件而java语言编译后就是产生的class文件,但是并不是只有java一种语言产生class文件
在这里插入图片描述
比如Groovy ,Groovy 是 “用于 Java 虚拟机的一种敏捷的动态语言”,它 “以 Java 的强大功能 为基础,同时又包含由 Python、Ruby 和 Smalltalk 等语言带来的强大附加功能 ”,例如动态类 型转换、闭包和元编程(metaprogramming)支持。它是一种 成熟的面向对象编程语 言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。这些语言编译后也都是可以在java虚拟机上运行的。

JVM的Client模式与Server模式

JVM有两种运行模式Server与Client。两种模式的区别在于,Client模式启动速度较快,Server模式启动较慢;但是启动进入稳定期长期运行之后Server模式的程序运行速度比Client要快很多。这是因为Server模式启动的JVM采用的是重量级的虚拟机,对程序采用了更多的优化;而Client模式启动的JVM采用的是轻量级的虚拟机。所以Server启动慢,但稳定后速度比Client远远要快。
查询运行模式可以使用命令 java -version
在这里插入图片描述

JVM架构图

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加班狂魔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值