java的跨平台到底是什么意思? c语言给了程序员太多的权力,你阻止不了通过c语言来进行系统调用,所以除非特意写成可移植的c程序,否则一般跨不了平台.而java语言则不同了,无论你写什么样的程序(jni除外),都需要经过虚拟机解释执行,因此是跨平台的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 意思就是java的跨平台交给虚拟机来完成了,而c语言的编译器却搞不定跨平台(系统调用,基于某种编译器的语法,某些特定的库函数,基于某个特定字长的cpu编写程序等) java的跨平台,是指java运行时候凌驾于os之上,是在jvm中运行的,跟os没有直接联系。如果有机会写数据导入导出,和服务器之间交互的应用,就会知道“跨平台”有什么意义了。 在java之前,跨平台是很痛苦的事情,主要是因为所有对于系统的调用,在不同的操作系统下结果都不一样,简单的来说,int的长度在不同操作系统里面就不一样,甚至于连字节排列的顺序都不同。调用同一个函数返回的格式也不同,因此,写程序的人自己要对不同的系统非常了解,如果真的需要对不同操作系统进行兼容,要在程序里面写很多if,编译的时候要先判断使用的操作系统,创造很多环境变量才能编译,而且编译好的二进制可执行文件只能在本系统上运行。如果你写的是个功能库供别人调用的,那么光对操作系统的判断就占了代码的绝大部分,而且,还要你在不同平台下进行测试,这可是个艰苦卓绝的工作。建议你有空可以看看apache httpd服务器的源代码就知道了。 自从有了java之后,就把操作系统兼容的工作丢给了jvm了,对于程序员来说就再也不要关心int有几位,还有高位在前还是地位在前的问题了,你只要用java的代码把你程序的逻辑实现出来就可以了,这些兼容的问题就交给jvm去处理吧。这样,如果你写一个程序交付给客户使用,如果客户的环境是运行AIX的,你就不需要在本地也装一个AIX来开发和运行,你可以在windows上完成所有的开发,然后把编译好的文件交给客户就可以了,以后有别的客户需要在Solaris上运行这个程序,你都不用修改,直接拿过去就可以运行,这难道不是一种方便吗?只有被跨平台开发折磨过的人才能更深得体会到用java开发跨平台应用的优势。 java跨平台主要是java编译方式决定的,因为java他是通过jvm java虚拟机先编译在执行,他编译的class文件是底层的实现不是针对操作系统的,所有什么操作系统并不影响java代码的执行。 java的跨平台性是指java编写的程序能在多个操作系统上运行,因为它的实际运行是靠虚拟机与操作系统无关,而C语言没有跨平台性是因为它只能在Windows操作系统上运行,因为Windows上有了识别C语言的程序。 JAVA夸平台是说我们程序员只要管写程序架构算法,不用管你这程序是在什么系统运行的。因为不同系统有不同的系统api(理解成一些可以控制计算机的函数吧,比如显示图像什么的),就是说你在不同系统上写的程序会不一样的,但是java是夸平台的,同样的程序在什么系统都能跑。JAVA能夸平台是因为java是运行在JVM虚拟机上的,JVM解决了平台的不一性(这说明JVM是每个平台不一样的,是针对平台写的),我门写的JAVA代码交给JVM翻译,它翻译成本地机器码,所以说JAVA是夸平台,但是JVM不是跨平台 class文件跨平台,jvm跨不了平台,你写java你就跨平台,反正jvm你不用管 java一次编写,到处运行。。只需要写一次,到任何平台都不需要再写了。而c语言却无法这样 通过jvm,编译一次java程序,可以在每台有jvm的计算机上运行 我认为6楼的:java跨平台主要是java编译方式决定的,因为java他是通过jvm java虚拟机先编译在执行,他编译的class文件是底层的实现不是针对操作系统的,所有什么操作系统并不影响java代码的执行。解释的很清楚了~~~ 楼上认为6楼就很清楚了?我认为2、3楼才比较清楚,你说一堆什么jvm class不针对操作系统什么的,那我也可以说C语言可以通过不同的编译器去面对不同的操作系统! 问题已经解决。。 求一个获得当前排班类型的算法 急!!!!急!!! 无法从静态上下文中引用非静态变量this 关于java单机版 聊天工具,求助!!!!! SimpleDateFormat.parse() 一个画图程序paint问题 各位看看,哪里错了 求教:如何在Java中获得window的环境变量 xml获取标签里面的内容(也包含标签) 问一个小问题,有没有大虾给我看看是不是可行 关于JToolbar上各个按钮如何同时显示图标和文字的问题
如果有机会写数据导入导出,和服务器之间交互的应用,就会知道“跨平台”有什么意义了。 在java之前,跨平台是很痛苦的事情,主要是因为所有对于系统的调用,在不同的操作系统下结果都不一样,简单的来说,int的长度在不同操作系统里面就不一样,甚至于连字节排列的顺序都不同。调用同一个函数返回的格式也不同,因此,写程序的人自己要对不同的系统非常了解,如果真的需要对不同操作系统进行兼容,要在程序里面写很多if,编译的时候要先判断使用的操作系统,创造很多环境变量才能编译,而且编译好的二进制可执行文件只能在本系统上运行。如果你写的是个功能库供别人调用的,那么光对操作系统的判断就占了代码的绝大部分,而且,还要你在不同平台下进行测试,这可是个艰苦卓绝的工作。建议你有空可以看看apache httpd服务器的源代码就知道了。 自从有了java之后,就把操作系统兼容的工作丢给了jvm了,对于程序员来说就再也不要关心int有几位,还有高位在前还是地位在前的问题了,你只要用java的代码把你程序的逻辑实现出来就可以了,这些兼容的问题就交给jvm去处理吧。这样,如果你写一个程序交付给客户使用,如果客户的环境是运行AIX的,你就不需要在本地也装一个AIX来开发和运行,你可以在windows上完成所有的开发,然后把编译好的文件交给客户就可以了,以后有别的客户需要在Solaris上运行这个程序,你都不用修改,直接拿过去就可以运行,这难道不是一种方便吗?只有被跨平台开发折磨过的人才能更深得体会到用java开发跨平台应用的优势。
java跨平台主要是java编译方式决定的,因为java他是通过jvm java虚拟机先编译在执行,他编译的class文件是底层的实现不是针对操作系统的,所有什么操作系统并不影响java代码的执行。
解释的很清楚了~~~