两情若是久长时,又岂在朝朝暮暮。
我们时常听到一个词语“跨平台”,那么什么是跨平台呢?
从字面意思上看,也就是相同的字节码(以java编译后的字节码为例)可以
在不同的操作系统环境上运行。这究竟是怎么做到的呢?
学习了面向对象的特征,我们都知道面向接口编程,也就是设计模式中
的”具体的依赖于抽象“这个原则。那么这个设计原则有什么好处呢?其实,说
白了,也就是多态的优点,即我们可以使用相同的接口,然后让不同的子类实现
此接口,从而达到操作不同对象的目的。例如,JDBC就是典型的面向接口编程,
首先我们制定了统一的java访问数据库接口,然后不同的数据库厂商则通过实现
此接口来达到访问特定数据库的目的。
JVM也是类似的,针对字节码的运行时相关操作(字节码解析等),制定了统一
的接口,而不同的操作系统就像是实现此接口的不同子类而已。因此,在不同的操作系统
中运行java程序,需要下载与操作系统对应的JDK(其中包含JRE)。
JVM能够跨计算机系统结构来执行java字节码,主要是由于JVM屏蔽了
与各个计算机平台相关的软件和硬件之间的差异,使得与平台相关的耦合统一
由JVM提供者来实现。