在Java疯狂讲义上看到的关于JVM的精彩描述
JVM的概念其实很容易理解,就像我们有两支不同的笔,但需要把同一个笔帽套在两支不同的笔上,只有为该两支笔分别提供一个转换器,这个转换器向上的接口相同,用于适应同一个笔帽;向下的接口不同,用于适应两支不同的笔。在这个类比中,我们可以近似理解两支不同的笔就是不同的操作系统,而同一个笔帽就是Java字节码程序,转换器角色则对应JVM。类似的,我们也认为JVM分为向上和向下两个部分,所有平台上的JVM向上提供给Java字节码程序的接口完全相同,但向下适应不同平台的接口则互不相同。