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