1、“一次编译,处处运行”,谈谈我对这句话的理解
从课本到面试题,都说java是一门跨平台的语言,就是这句话体现的吧。其实能跨平台的不至是java啊,java只是其中比较成熟的一种,为什么这么说,首先我们要了解java怎么实现跨平台的。
支撑着跨平台的最主要就是java虚拟机。它就像一个小型的操作系统,无论是最大佬的windows,最疯狂的linux,最高贵的mac,都能安装jdk环境,也就是说java虚拟机可以运行在任何平台上,从根本上屏蔽了不同系统对java运行的影响,因为你最后运行的都是在这个小型操作系统中。
我们都知道,java代码经过编译后就生成对应的.class文件,这个文件就是“到处运行”的文件,最后.class文件经过解释成机器码后就真正执行了。整个过程都跟系统的关系不大,只要你安装了相应的jdk,那么运行的效果也就是一样的。
当然并不是说所有java代码都需要那么麻烦经过编译解释。oracle jdk 提供的Hotspot JVM就提供了一种JIT编译器,能将热点代码直接解释为机器码,提高了执行效率。
=======================================