大家好,今天小编关注到一个比较有意思的话题,就是关于java语言跨平台原理图的问题,于是小编就整理了2个相关介绍Java语言跨平台原理图的解答,让我们一起看看吧。
简述的工作机制。为什么它能实现跨平台?
j***a的跨平台即跨操作系统的平台,也就是说你写的j***a程序不需要修改就可以在不同的操作系统上运行windows,linux,unix,当然有个前提就是你的操作系统必须有j***a环境了,即安装了对应的jdk。应为j***a程序编译成class文件都交给JVM来处理了。
在j***a之前,跨平台是很痛苦的事情,主要是因为所有对于系统的调用,在不同的操作系统下结果都不一样,简单的来说,int的长度在不同操作系统里面就不一样,甚至于连字节排列的顺序都不同。调用同一个函数返回的格式也不同,因此,写程序的人自己要对不同的系统非常了解,如果真的需要对不同操作系统进行兼容,要在程序里面写很多if,编译的时候要先判断使用的操作系统,创造很多环境变量才能编译,而且编译好的二进制可执行文件只能在本系统上运行。如果你写的是个功能库供别人调用的,那么光对操作系统的判断就占了代码的绝大部分,而且,还要你在不同平台下进行测试,这可是个艰苦卓绝的工作。
自从有了j***a之后,就把操作系统兼容的工作丢给了jvm了,对于程序员来说就再也不要关心int有几位,还有高位在前还是地位在前的问题了,你只要用j***a的代码把你程序的逻辑实现出来就可以了,这些兼容的问题就交给jvm去处理吧。这样,如果你写一个程序交付给客户使用,如果客户的环境是运行AIX的,你就不需要在本地也装一个AIX来开发和运行,你可以在Windows上完成所有的开发,然后把编译好的文件交给客户就可以了,以后有别的客户需要在Solaris上运行这个程序,你都不用修改,直接拿过去就可以运行,很方便!只有被跨平台开发折磨过的人才能更深得体会到用j***a开发跨平台应用的优势。
因为j***a程序是用j***a虚拟机(JVM)执行的,不论是用什么平台开发的j***a代码,最终都会被转换成只被JVM识别的代码。 所以只要下载各个平台的j***a虚拟机就可以实现代码的跨平台运行。
python、J***a、c#和c++中,哪种语言的跨平台性比较好?
都说J***a跨平台,是因为有虚拟机,用的人多;
题主问跨平台性,不好理解这个跨平台性具体是指的什么,以下从三个方面回答一下试试:
J***a可移植性最佳。JDK版本一致的情况下,只要没使用平台特有的函数,代码是可以无缝移植的。而且编译后的程序可以直接跨平台运行,不需要针对平台重新编译。
Python我放在第二,很多朋友会有异意。之所以这样放,是因为Python2和3本身差异太大了,Python2要移值到3,本身就是困难的事情。但如果Python本身的版本保持不变,那跨平台的移植性和J***a是差不多的。但Python不需要编译再部署,所以Python保持版本不变的情况下,跨平台移植会比J***a方便。
C++。C++语言本身是可以方便移植的,但跨平台时需要重新针对平台进行编译。而C++往往与平台强相关,即使目标系统从32位变成64位,也很可能需要重新编译。相对来说,C++的跨平台移值不是那么容易。
C#移植就更困难了,在很多数操作系统里甚至不支持,就不具备移植的可操作性。虽然在部分Linux系统里已经支持运行,微软也开源了.NET FrameWork,但目前跨平台使用C#的相对比较少,资料查询也不容易,所以可移植性我把它排在了最后。
C++ > C# > J***a > Python
这个是我个人经验结果,非实际测试结果。
J***a > C# > Python > C++
到此,以上就是小编对于j***a语言跨平台原理图的问题就介绍到这了,希望介绍关于j***a语言跨平台原理图的2点解答对大家[_a***_]。