java平台理解

2018-05-10  本文已影响3人  机算子

Java特性:

面向对象(封装,继承,多态)

平台无关性(JVM运行.class文件)

语言(泛型,Lambda)

类库(集合,并发,网络,IO/NIO)

JRE(Java运行环境,JVM,类库)

JDK(Java开发工具,包括JRE,javac,诊断工具)

首先javac编译器将源代码编译成字节码。

然后jvm类加载器加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度相对会比较慢。有些方法和代码块是高频率调用的,也就是所谓的热点代码,所以引进jit技术,提前将这类字节码直接编译成本地机器码。这样类似于缓存技术,运行时再遇到这类代码直接可以执行,而不是先解释后执行。

1,Java源代码经过Javac编译成.class文件

2,.class文件经JVM解析或编译运行。

(1)解析:.class文件经过JVM内嵌的解析器解析执行。

(2)编译:存在JIT编译器(Just In Time Compile 即时编译器)把经常运行的代码作为"热点代码"编译与本地平台相关的机器码,并进行各种层次的优化。

(3)AOT编译器: Java 9提供的直接将所有代码编译成机器码执行。

上一篇 下一篇

猜你喜欢

热点阅读