JVM是什么

TIOBE语言热度榜

https://www.tiobe.com/tiobe-index/

 

 

Java生态圈

平台:Java虚拟机扮演举足轻重的作用

Groovy、Scala、JRuby、Kotlin等都是Java平台的一部分

文化:Java几乎是“开源”的代名词

第三方开源软件和框架:Tomcat、Structs、MyBatis、Spring

JDK和JVM本事也有不少开源的实现:OpenJDK、Harmony

社区:世界最多的技术维护者,开源社区支持

 

 

JDK  编写+javac+Jconsole...

JRE JVM+核心类库

JVM 承上启下,承上:Java字节码,启下:各种操作系统

 

Java:跨平台的语言

 

 

JVM:跨语言的平台

Java不是最强大的语言,但是JVM是最强大的虚拟机

For the sake of security .the Java virtual machine imposes strong syntactic and structural constraints on the code in a class file.

However,any language with functionality that can be expressed in terms of a valid class file can be hosted by JVM,

attracted by a generally available ,machine-independent platform ,

implementors of other language can turn on the JVM as a delivery vehicle for their languages.

 

字节码

  • 平时说的java字节码,表示java语言编译的字节码。但是其实,任何能在JVM平台上执行的字节码格式都是一样的。所以,应该统称为JVM字节码
  • 不同的编译器,可以编译出相同的字节码文件,字节码文件也可以再不同的JVM上运行
  • JVM和Java没有必然的联系,JVM只与特定的二进制文件格式-Class文件格式所关联,Class文件中包含JVM指令集(字节码,Bytecodes)和符号集,还有一些其他的辅助信息

 

多语言混合编程

 

 

Java发展的重大事件

 

 

Open JDK 和 Oracle JDK 

 

在JDK11之前,OracleJDK中还会存在一些OpenJDK中没有的、闭源的功能,但是在JDK11中,这两者几乎一致

2019年后,比如,Shenandoah GC,OpenJDK很多时候居然比商用OracleJDK功能还多???

 

 

虚拟机和Java虚拟机

虚拟机

  • 系统虚拟机:对物理计算机的仿真
  • 程序虚拟机:为执行单个计算机程序而设计,在Java虚拟机中执行的指令称为Java字节码指令

在虚拟机上运行的软件都被限制于虚拟机提供的资源中

 

Java虚拟机

  • Java技术的核心:JVM
  • Java虚拟机就是二进制字节码的运行环境。解释/编译为对应平台的机器指令执行,每一条Java指令,JVM都有详细的定义,比如,怎么取操作数,怎么处理操作数,处理结果放在哪里?
  • 一次编译,到处运行
  • 自动内存管理
  • 自动垃圾回收功能

 

JVM的位置

JVM是运行在OS之上,与硬件没有直接的交互

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值