JVM深入认识JVM是什么

10 篇文章 0 订阅
Java Virtual Machine(JVM)会架构在 Solaris、 LLINUX、 Windows各种操作系统平台之上。许多Java的书都会告诉你,JVM让ava可以跨平台,但是跨平台是怎么一回事在这之前,得先了解不能跨平台是怎么一回事。
对于计算机而言,只认识一种语言,也就是0、1序列组成的机器指令。当使用C/C+等高级语言撰写程序时,其实这些语言,是比较贴近人类可阅读的文法,也就是比较接近英语文法的语言。这是为了方便人类阅读及撰写,计算机其实看不懂C/C+这类语言,为了将C/C++翻译为0、1序列组成的机器指令,必须有个翻译员。担任翻译员工作的就是编译程序( Compiler)

问题在于,每个平台认识的0、1序列并不一样。某个指令在 Windows上也许是0101,在 Linux下也许是1010,因此必须使用不同的编译程序为不同平台编译出可执行的机器码.

在 Window平台上编译好的程序,不能直接拿到 Linux等其他平台执行。也就是说,应用程序无法达到“编译一次,到处执行”的跨平台目的

Java是个高级语言,要让计算机执行所撰写的程序,得通过编译程序的翻译。不过Java编译时,并不直接编译为相依于某平台的0、1序列,而是翻译为中介格式的位码( Byte Code)Jva原始码扩展名为java,经过编译程序翻译为扩展名为 class的位码。如果想要执行位码文档,目标平台必须安装JVM。JVM会将位码翻译为相依于平台的机器码。

不同的平台必须安装专属该平台的JVM。这就好比你讲中文(*java),Java编译程序你翻译为英语(cla),)这份英语文件到各个国家之后,再由当地看得懂英文的人(JVM)翻为当地语言(机器码)
所以JVM担任的职责之一就是当地翻译员,将位码文档翻译为当时平台看得懂的0、序列,有了JVM,你的Java程序就可以达到“编译一次,到处执行”的跨平台目的。除了解JVM具有让Java程序跨平台的重要任务之外,撰写Java程序时,对JVM的重要认识就是对Java程序而言,只认识一种操作系统,这个系统叫JVM,位码文档(扩展名为cass的文档)就是JVM的可执行文件
Java程序理想上并不用理会真正执行于哪个平台,只要知道如何执行于JVM就可以了至于JVM实际上如何与底层平台沟通,则是JVM自己的事。由于JM实际上就相当于Java程序的操作系统,JVM就负责了Java程序的各种资源管理
理解“JVM就是Java程序的操作系统,JVM的可执行文件就是cass文档”非常重要,对于以后理清所谓PATH变量与 CLASSPATH变量之间的差别,有非常大的帮助。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值