如何理解JAVA的跨平台特性?
我是个普通的C,VB类程序员,想入门学JAVA,看到其跨平台特性很好奇,很想知道JAVA开发的程序是如何不用修改就能跨平台运行,结果得知,要跨平台先要安装JVM,顿时觉得...
我是个普通的C,VB类程序员,想入门学JAVA,看到其跨平台特性很好奇,很想知道JAVA开发的程序是如何不用修改就能跨平台运行,结果得知,要跨平台先要安装JVM,顿时觉得这太无聊了……心想,要是微软也为每个操作系统做一个MVM,企不是小红帽上面也能运行C#开发的程序了? 那C#也跨平台了?
以上是属于自己的一点薄见,请赐教,我是新手,不怕直言:) 展开
以上是属于自己的一点薄见,请赐教,我是新手,不怕直言:) 展开
6个回答
展开全部
直接在不同的平台上运行而不用重新编译,这一特性使得Java随着Web应用的普及而迅速普及起来。
实际上,编译后的Java代码并不是传统的二进制代码(如Windows下的.exe文件),而是Java字节码,这种字节码文件是不能直接在操作系统上执行的。要想在一个操作系统上运行一个Java程序必须有一个中间环节来负责将Java字节码解释成二进制码,这个中间环节就是Java虚拟机(简称JVM)。由于目前大多数操作系统已经实现了JVM,所以Java轻松实现跨平台性。
实际上,编译后的Java代码并不是传统的二进制代码(如Windows下的.exe文件),而是Java字节码,这种字节码文件是不能直接在操作系统上执行的。要想在一个操作系统上运行一个Java程序必须有一个中间环节来负责将Java字节码解释成二进制码,这个中间环节就是Java虚拟机(简称JVM)。由于目前大多数操作系统已经实现了JVM,所以Java轻松实现跨平台性。
展开全部
JAVA的跨平台是因为在各种操作系统里面都嵌入了JAVA虚拟机,这是sun公司免费提供的。Java平台与大多数其它平台不同,是基于其它软件或硬件的纯软件平台,Java虚拟机,是Java平台的基础。就是说只要有JAVA虚拟机,就能运行JAVA软件,而且现在所有的操作系统里面都带了JAVA虚拟机,所以说它的夸平台性好。这是微软办不到的,因为微软它不可能把自己的一些技术免费提供给别人的,JAVA的开源就是它对微软的最大优势
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C#本身是一门语言,实际上任何语言都可以做出跨平台运行的程序,关键看有没有对应的运行环境了。
java原来是Sun公司主导的,它刚刚创立之初就是奔"跨平台"去了,所以在设计的时候就同时考虑了各种平台,包括手持机系统,嵌入式系统,Linux系统,mac,windows系统等,应该说,java从一开始就是为"跨平台"准备的,每出一个版本,都会有相应的各平台的官方VM出现。
但C#等别的语言不同,特别是C#,Microsoft只支持在windows平台中用,mono C#并不被其支持。所以它和CLR等一样,诞生之初就只能在windows中用。
其它语言如perl, ruby, lua 待解释性语言,一般只能在有解释器的平台中才可以运行,通常也只能用在PC/机系统或者服务器系统中,而极少用在嵌入式系统中,所以跨平台特性不强。
java原来是Sun公司主导的,它刚刚创立之初就是奔"跨平台"去了,所以在设计的时候就同时考虑了各种平台,包括手持机系统,嵌入式系统,Linux系统,mac,windows系统等,应该说,java从一开始就是为"跨平台"准备的,每出一个版本,都会有相应的各平台的官方VM出现。
但C#等别的语言不同,特别是C#,Microsoft只支持在windows平台中用,mono C#并不被其支持。所以它和CLR等一样,诞生之初就只能在windows中用。
其它语言如perl, ruby, lua 待解释性语言,一般只能在有解释器的平台中才可以运行,通常也只能用在PC/机系统或者服务器系统中,而极少用在嵌入式系统中,所以跨平台特性不强。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是的 楼上说了那么说
其实就JAVA的跨平台性就是你“顿时觉得这太无聊了”的东西
可是当它变成现实的时候,就不无聊了
差别就在于他们敢不敢这么去做,或者说微软敢不敢去那么做
再或者这不是敢不敢的问题,而是它做没有做的问题。
不必太纠结,仅此而已
其实就JAVA的跨平台性就是你“顿时觉得这太无聊了”的东西
可是当它变成现实的时候,就不无聊了
差别就在于他们敢不敢这么去做,或者说微软敢不敢去那么做
再或者这不是敢不敢的问题,而是它做没有做的问题。
不必太纠结,仅此而已
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个要从他的底层说起。
我看了看楼上的都没有说中要点。
他的快平台性是因为当我们写完java代码时,在运行之前是要进行编译的,而编译出来的文件呢都是.class的字节码文件(二进制文件)。这种文件电脑是都认的,但是以怎样的顺序解码就需要不同的系统的jvm来做了。
这就是所谓的跨平台性……
我看了看楼上的都没有说中要点。
他的快平台性是因为当我们写完java代码时,在运行之前是要进行编译的,而编译出来的文件呢都是.class的字节码文件(二进制文件)。这种文件电脑是都认的,但是以怎样的顺序解码就需要不同的系统的jvm来做了。
这就是所谓的跨平台性……
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询