JVM入门

JVM入门

在这里插入图片描述

javac是java语言编程编译器.负责将java文件编译成class文件.class文件可被JVM执行。

JVM是跨语言的平台(一种规范)和java语言没有任何关系,只与class文件有关

class文件是一种特定的二进制文件格式,class文件中包含了JVM指令集和符号表以及若干其他的辅助信息。

class文件被ClassLoader装载到内存中,同时一些通用的java类库相关的类(String,Object)也会被装载到内存中。装载完成后会调用字节码解释器或JIT(Just-In-Time Compiler)即时编译器来解释或编译。再由执行引擎来执行。

class文件可由不同的语言编译而来,JVM作为一个通用的,机器无关的执行平台,任何语言的实现者都可以将JVM作为语言的产品交付媒介。如同java编译器可以将java文件编译为class文件,其他的编程语言也可以将程序代码编译成class文件,JVM不关心class的来源是何种语言。
在这里插入图片描述
java是解释执行的还是编译执行的?

其实是解释编译混合执行的。

代码由解释器解释后发给执行引擎由操作系统来执行。而特别常用的代码,用到次数特别高的情况下会转换成可以直接发送给操作系统的程序。下一次执行这段代码的时候,就不需要解释器再解释了。

不是所有的代码都会被JIT进行即时编译的,如果是这样的话JAVA就变成完全不能跨平台了,jit会把你的代码编译成与平台相关的底层机器语言,就失去了跨平台能力

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值