0
点赞
收藏
分享

微信扫一扫

一、jvm入门基础

书呆鱼 2022-05-03 阅读 72

  1. java编译到执行?
  2. 跨平台语言到跨语言的平台
  3. 常见的jvm实现
  4. jdk jre jvm关系
  5. Class File Format

java如何执行?

跨平台语言到跨语言的平台

 符合class文件规范即可到jvm执行。

常见的jvm实现

Hotspot:目前使用的最多的 Java 虚拟机。
Jrocket:原来属于BEA 公司,曾号称世界上最快的 JVM,后被 Oracle 公司收购,合并于 Hotspot
J9: IBM 有自己的 java 虚拟机实现,它的名字叫做 J9. 主要是用在 IBM 产品(IBM WebSphere 和 IBM 的 AIX 平台上)
TaobaoVM: 只有一定体量、一定规模的厂商才会开发自己的虚拟机,比如淘宝有自己的 VM,它实际上是 Hotspot 的定制版,专门为淘宝准备的,阿里、天 猫都是用的这款虚拟机。
LiquidVM: 它是一个针对硬件的虚拟机,它下面是没有操作系统的(不是 Linux 也不是 windows),下面直接就是硬件,运行效率比较高。
zing: 它属于 zual 这家公司,非常牛,是一个商业产品,很贵!它的垃圾回收速度非常快(1 毫秒之内),是业界标杆。它的一个垃圾回收的算法后来被 Hotspot 吸收才有了现在的 ZGC。

jdk jre jvm关系

 

1. JDK
JDK ( Java SE Development Kit ), Java 标准的开发包,提供了编译、运行 Java 程序所需要的各种工具和资源 ,包括了 Java 编译器、 Java 运行时环境、以及常用的 Java 类库等。
2. JRE
JRE ( Java Runtime Environment ) , Java 运行时环境,用于解释执行 Java 的字节码文件 。普通用户只需要安装 JRE 来运行 Java 程序即可,而作为一名程序员必须安装 JDK ,来编译、调试程序。
3. JVM
JVM ( Java Virtual Mechinal ), Java 虚拟机,是 JRE 的一部分。 它是整个 Java 实现跨平台的核心 ,负责解释执行字节码文件,是可运行 Java 字节码文件的虚拟计算机。所有平台上的 JVM 向编译器提供相同的接口,而编译器只需要面向虚拟机,生成虚拟机能识别的代码,然后由虚拟机来解释执行。


Class File Format

  • magic(魔数)4字节:魔数的作用在于,可以轻松的分辨出java class文件和非java class 文件。
  • minnor_version +major_version  4字节:class文件的下面4个字节包含了主、次版本号。
  • constant_pool.count 2字节+ constant_pool(constant_pool.count -1的表):常量池包含了与文件中类和接口相关的常量。常量池中存储了诸如文字字符串、final 变量值、类名和方法名的常量。
  • access_flags:展示了文件中定义的类或接口的几段信息。
  •  this_class :它是一个队常量池的索引。

   这部分参考:JVM系列之一:ClassFileFormat 详解_183090792csdn的博客-CSDN博客

举报

相关推荐

0 条评论