Java核心技术0-Java平台
关键词
Compile once,Run anywhere
解释执行
垃圾回收 GC,Garbage Collection
JRE Java Runtime Environment,包含JVM和Java类库和一部分模块
JDK Java Development Kit,包含JRE以及更多工具,编译器、诊断工具等。
Java源代码->字节码->JVM解释成为机器码执行
常见的JVM,都提供了JIT,Just-In-Time编译器,也就是通常所说的动态编译器,能够在运行时将热点代码编译成机器码,这种情况下热点代码就属于编译执行,而不是解释执行了。
除了我们日常最常见的 Java 使用模式,其实还有一种新的编译方式,即所谓的 AOT(Ahead-of-Time Compilation),直接将字节码编译成机器代码。
Java特性:
面向对象(封装,继承,多态)
平台无关性(JVM运行.class文件)
语言(泛型,Lambda)
类库(集合,并发,网络,IO/NIO)
JRE(Java运行环境,JVM,类库)
JDK(Java开发工具,包括JRE,javac,诊断工具)
Java是解析运行吗?
不正确!
1,Java源代码经过Javac编译成.class文件
2,.class文件经JVM解析或编译运行。
(1)解析:.class文件经过JVM内嵌的解析器解析执行。
(2)编译:存在JIT编译器(Just In Time Compile 即时编译器)把经常运行的代码作为”热点代码”编译与本地平台相关的机器码,并进行各种层次的优化。
(3)AOT编译器: Java 9提供的直接将所有代码编译成机器码执行。