java跨平台到底是啥东西?什么是JVM?不懂就来看看撒!**
_ 这是靓仔呀_
***最近有很多娃儿们在问,什么是JVM???java跨平台是啥子鬼东西?到底这啥意思,那啥意思??兄弟们,稍安勿躁!!现在就给你解释!
耳朵扯好!准备上车,老司机带带你,网上开车,我贼稳!
0.-预备知识
答:哎!兄弟们,我们在我们的编译器上面new了一个java文件,后缀是不是.java??肯定是撒!好!现在我们写一个高深一点的代码,比如你sout(“你好你好”),现在你要执行这个程序(这个过程叫编译哦!),然后你的.java文件将会“衍生”出另外的一个文件,后缀是.class(就在你那些项目的目录下面,你眼睛放大点,自己去找,找不到再来问我,自己下方留言,反正我也不看留言)。现在这个.class文件的标准名字叫做字节码文件!!!(兄弟们记到起哦!)。
1.-JVM作用是个啥??跨平台是个啥?跨啥平台?
___答:我们都晓得,计算机语言分成三种,是哪三种呢??我也不晓得,等我百度下!!【一分钟后】
___兄弟们,计算机语言分成机器语言(字节流01010101),低级语言(就是汇编语言),高级语言(eg:JAVA,C,CPP… )。我们的计算机执行的是机器语言,但是我们写的是高级语言的嘛!那怎样让垃圾电脑懂我们写的高级语言代码呢??那我们就将我们的高级语言转换成机器语言不香吗?
___屁话少说了!问题是,怎样将我们的高级语言转换成机器语言?—>在java里面,编译器将我们的.java文件转换成.class文件(字节码文件哦!!!),JVM将我们的.class文件转换成机器语言!但是!但是!!!注意看哦!!一般来讲,不同的操作系统装有不同的JVM,并且不同的平台(就是我们说的OS)的机器码不是一样的哦!!!但是不同的平台是可以借助对应的JVM把相同的字节码文件转换成机器语言的哦!!!计算机才会听我们的话!!(所以有句屁话,叫做**“一次编译,到处执行!”**懂了不???)
2.-靓仔不说废话
来,直接上个例子,你的C语言文件在windows系统下是不是被编译成.exe(可执行文件!!),但是你这垃圾exe能在linux上面运行吗??可以??可以个der啊!不可以哦!!!(C文件好像默认在Linux上面被编译成a.out,是elf的可执行文件,我也忘了,你自己打开虚拟机看看)。那为啥我们的字节码文件可以在不同的操作系统上执行呢??就是因为有JVM。。。。JVM把字节码转换成机器语言,懂了不?!
总之!!有了JVM,你的字节码文件将会变得无敌!可以在不同的操作系统上运行,真正实现跨平台!所以我们的家娃语言是一种跨平台语言哦!!
ps:睡觉了,看懂了的话,就点个赞哈!
没看懂的,自己挖眼睛。
ps:关于JVM的组成以及功能,是很复杂的,大家如果有兴趣就可以去看看JVM调度这本书籍,你将会从底层去了解JVM,真的很那啥,很恶心,如果以后面试的时候,了解JVM也是一个优势,但是这书真tm恶心。
文章出处:
_ 这是靓仔呀_
好,下车!车费五块!起步价,别砍价