我们经常听到这句话:跨平台的语言和跨语言的平台。
他到底是什么意思?
意思是说我们程序员写代码的时候只写一份,javac 编译也只编译一次,但是可以在 windows 上运行,也可以把打好的包放到 unitx、linux、macos 上运行。
如果你是程序员,你一定不会感到奇怪,但是你有没有问一个问题?为什么可以呢? 记住一句话【生活哪有什么岁月静好,只是有人在为你负重前行】。你知道这个为我们负重前行的人是谁吗?就是 jvm(java 虚拟机 Java Virtual Machine Java 虚拟机)
需要声明:
- 不同的平台需要部署平台的虚拟机,目的就是对接不同的操作系统。
- 不同平台的 jvm 肯定代码是不一样的,他把差异性放在 jvm 内部,即写 jvm 大大哥帮忙我们写好了。给我们暴露的就是个平台没有差异,部署 java 程序就可以了。
- 是不是感觉有大哥真好!哈哈
看图写话:
Write once, run anywhere
jvm 是跨语言的平台优势什么意思呢?
给你一个场景你就明白了:
我可以不可使用 c 写一个程序,然后通过一顿加工,把编译后的文件在 jvm 上运行?????
到底可以吗吗?
答案是肯定的。关键点在【一顿捯饬】上,如果你可以飘过 jvm 就可以在其上运行。
这里把 c 语言换成其他的语言就可以了。并且有大哥已经帮我们捯饬好了。我们使用他们提供的编译器编译相应的语言,然后骗过 jvm 就可以运行了。
那么为什么要这样呢?因为 jvm 实在在普及了,又开发者原因为其适配、按其规范来开发编译器。
通过上面的说明,应该说明白了为什么 jvm 是跨语言的平台 把。那么目前有哪些语言可以在 jvm 上运行呢?
以上两点有么有发现都和 jvm 有关系。基于此才是 jvm 生命力无限的源泉。有必要对 jvm 深入了解和研究!
自律的艰辛总甜过懊悔的苦果!
专注于 java 后端技术及解决方案,善于总结,分享!
自律的艰辛总甜过懊悔的苦果!
专注于 java 后端技术及解决方案,善于总结,分享!
自律的艰辛总甜过懊悔的苦果!
专注于 java 后端技术及解决方案,善于总结,分享!