×
新网 > 虚机资讯 > 正文

Java究竟为什么需要虚拟机?(下)

  • 作者:
  • 来源:
  • 2018-05-25 11:27:10

由于每个平台的特性不同可引用的函数程序库(Library)不同也许你的代码还得作修改才可以在另一个平台上编译执行。这很不方便就是说如果你在Windows设计了一款游戏想要卖给Linux的使用者就得再花费一些功夫。这也是为什么大部分游戏或者软件只能在Windows运行了。

 由于每个平台的特性不同可引用的函数程序库(Library)不同也许你的代码还得作修改才可以在另一个平台上编译执行。这很不方便就是说如果你在Windows设计了一款游戏想要卖给Linux的使用者就得再花费一些功夫。这也是为什么大部分游戏或者软件只能在Windows运行了。

Java 也是个高阶语言要让电脑执行你编写的应用程序也是得借助编译器的翻译。不过Java编译时并不直接翻译为相依于某平台的0101指令而是翻译为中介格式的位元码。Java 的原始码文件格式名为*.java经过编译器翻译过后会变成*.class的格式文件位元码。如果想要执行这个位元码档案目标平台上必须安装有虚拟机会将位元码翻译为相应平台支持的语言。
1059230.jpg
不同的平台必须安装该平台相对应的JVM这就好比你讲中文(*.java)、Java编译器帮你翻译为英文(*.class)。之后该英文文件到当地之后再由当地看得懂英文的人翻译为当地的方言。
所以虚拟机所担任的职责之一就是当地的翻译员将位元码文件翻译为当时作业系统看得懂的0101序列。不过这不是最重要的基本上如果只是要翻译员的话直译器(Interpreter )就办得到了。
JVM有个很重要的观念就是:对于Java程式而言其实它只认识一种作业系统(或说是一种机器)这个系统叫作虚拟机,而对于虚拟机而言位元码文件就是它的可执行文件!也就是格式为.class的文件。Java代码程序理想上并不用理会真正执行于哪个平台之上,它只要知道如何执行于JVM之上就可以了至于JVM实际上如何与底层平台作沟通则是JVM自己的事!
 
这个观念非常的重要对于以后能够搞清楚所PATH变量与CLASSPATH变量的概念也有一定的帮助。

  • 相关专题

免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:operations@xinnet.com进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

免费咨询获取折扣

Loading