java可跨平台性 unix和windows的根本性区别

老师问了我两个问题,结果没答出来,
第一个是:
java虚拟机虚拟的是什么环境?是编码译码么
第二个问题:
都说java的可跨平台性,那unix和windows平台的根本性区别是什么?

在线等哦,不要ctrl+C与ctrl+V的。嘿嘿

第一,关于JAVA虚拟机。一般的编程语言都与操作系统具有密切的关系。比如C语言,你在windows环境下编程的程序只能在windows环境下运行。UNIX下也有C语言,但是编写的程序只能在UNIX环境下运行。同一个程序,要在windows环境和UNIX环境下运行,必须分别编写,分别编译。这就是JAVA跨平台的出发点。JAVA编写的程序,编译后既可以在windows环境下执行,也可以在UNIX下执行,完成这个,依靠的就是虚拟机。虚拟机虚拟的是程序执行的环境,他建立在操作系统之上,把JAVA的代码根据宿主操作系统的类型编译成可以执行的代码。所以, 虚拟机虚拟的是一个操作系统的环境,当然也包括编码译码功能。
第二,UNIX平台和WINDOWS平台没有本质的区别,都是操作系统。但是他们内部的实现方法和工作过程是不同的,因此造成他们的程序不能互相通用。所以,JAVA的跨平台就使得这个不可能变为可能。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-05-17
第一个问题
虚拟机虚拟的应该是编译环境和运行环境
第二个问题
unix与windows的编写语言不一样,安全机制也不一样,就连路径分隔符也不一样。
相似回答