1. Java “compile once, run anywhere”一次编译,处处运行,说的是Java语言的跨平台特性,java的跨平台特性与Java虚拟机的存在密不可分,可在不一样的环境中运行。不一样的系统平台都有对应的JDK,好比windows,安装好JDK,就有了Java的运行环境。Java能够跨平台运行就是由于不一样的平台都有Java语言运行的环境而已,因此才有了编译一次,处处运行。 java
程序从源代码到运行的阶段为:编码--编译--运行--调试,Java在编译阶段体现了跨平台的特色,首先将Java源代码转化为.class 字节码文件,这是第一次编译,.class文件就是能够处处运行的文件,而后在JVM中的解释器会将Java .class 字节码文件转化为目标机器代码,这是第二次编译。“处处运行”的关键就是JVM,由于第二次编译中,JVM起着关键做用。windows
另外,JVM做为一个强大的平台,不单单只有java语言能够运行在JVM上,本质上合格的字节码均可以运行,Java语言自身也为此提供了便利,咱们能够看到相似Clojure/Scala/Groovy/JRuby/JPython等大量JVM语言,活跃在不一样的场景。网络
2. Java特性并发
面向对象(封装,继承,多态)工具
平台无关性(JVM运行.class 文件)开发工具
语言特性(泛型,lambda)编码
类库(集合,并发,网络,IO/NIO)调试
JRE(Java运行环境,JVM,类库)对象
JDK(java开发工具,包括JRE,javac,诊断工具)继承