码迷,mamicode.com
首页 > 编程语言 > 详细

java的跨平台性指的什么

时间:2014-08-05 18:42:09      阅读:237      评论:0      收藏:0      [点我收藏+]

标签:style   http   java   使用   os   文件   数据   问题   

java的跨平台,是指java运行时候凌驾于os之上,是在jvm中运行的,跟os没有直接联系。


如果有机会写数据导入导出,和服务器之间交互的应用,就会知道“跨平台”有什么意义了。 

在java之前,跨平台是很痛苦的事情,主要是因为所有对于系统的调用,在不同的操作系统下结果都不一样,简单的来说,int的长度在不同操作系统里面就不一样,甚至于连字节排列的顺序都不同。调用同一个函数返回的格式也不同,因此,写程序的人自己要对不同的系统非常了解,如果真的需要对不同操作系统进行兼容,要在程序里面写很多if,编译的时候要先判断使用的操作系统,创造很多环境变量才能编译,而且编译好的二进制可执行文件只能在本系统上运行。如果你写的是个功能库供别人调用的,那么光对操作系统的判断就占了代码的绝大部分,而且,还要你在不同平台下进行测试,这可是个艰苦卓绝的工作。建议你有空可以看看apache httpd服务器的源代码就知道了。 

自从有了java之后,就把操作系统兼容的工作丢给了jvm了,对于程序员来说就再也不要关心int有几位,还有高位在前还是地位在前的问题了,你只要用java的代码把你程序的逻辑实现出来就可以了,这些兼容的问题就交给jvm去处理吧。这样,如果你写一个程序交付给客户使用,如果客户的环境是运行AIX的,你就不需要在本地也装一个AIX来开发和运行,你可以在windows上完成所有的开发,然后把编译好的文件交给客户就可以了,以后有别的客户需要在Solaris上运行这个程序,你都不用修改,直接拿过去就可以运行,这难道不是一种方便吗?只有被跨平台开发折磨过的人才能更深得体会到用java开发跨平台应用的优势。

 

 意思就是java的跨平台交给虚拟机来完成了,而c语言的编译器却搞不定跨平台(系统调用,基于某种编译器的语法,某些特定的库函数,基于某个特定字长的cpu编写程序等)

 

原文地址:http://bbs.csdn.net/topics/390052011

java的跨平台性指的什么,布布扣,bubuko.com

java的跨平台性指的什么

标签:style   http   java   使用   os   文件   数据   问题   

原文地址:http://www.cnblogs.com/b302/p/3892542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!