1、很大区别。
2、JVM转的。
3、提前转好可以不依赖于JVM,不过不懂什么叫作彻底垮平台。编译成不依赖JVM的方式类似C/C++这种,需要为不同平台(操作系统/CPU)各自编译一份,也就是源代码跨平台。Java这种是二进制跨平台,因为平台的区别被JVM填了,或者说JVM本身就是平台。