Day02 从今天开始,大学生活正式拉开序幕

                                              Day02 从今天开始,大学生活正式拉开序幕

“同学们,欢迎你们来到Q大学,在这里,你们将渡过美好的四年生活”“还好,还好,没吃到”,小贤一边跟小李小声嘀咕着,一边看着坐在眼前的93名新同学,“你好,我是小周”,“哦,你好,我是小贤”看着眼前这位新同学,小贤的心里若有所思,昨天梦到Java之父高斯林,Sun发布了那么多的JDK到底是什么,虚拟机到底是用来做什么的?说着拿出了一块砖头(当时苹果4s刚刚出世,小米也在努力的为发烧而生)大的手机打开百度百科看着。JDKJava开发工具(包括Java程序设计语言,Java虚拟机,Java API类库)。JREJava运行环境(包括Java API类库中的Java SE部分,Java虚拟机)。如果一个Java程序想要运行,只需要JRE就可以。那最重要的Java虚拟机呢,到底是什么,用来做什么的?可以说Java虚拟机是实现“一次编译,到处运行”的核心大佬,我们都知道Windows,Linux,MacOS等等操作系统有很多的区别,实现细节也不一样。那么如何实现“一次编译,到处运行”呢?反正不可能在这三个平台上使用一套规范吧(这是不可能的事情,除非这些操作系统以后所有的规范都一样了),那怎么办,这个时候,我们的大佬Java虚拟机就要起绝对的作用了。Java虚拟机起到一个中间件的作用。下可以屏蔽掉不同操作系统(不同平台)的差异,使得一套Java代码可以在不同的平台正确运行,获得相同的结果。而向上呢,当然就是支持Java语言的使用规范和标准了(请牢记,一切都要听从Java虚拟机的规范,Java虚拟机怎么做就怎么做)。

                                         

那么Java虚拟机这么重要,到底做了什么事情呢?我们看到上面的简单视图就可以发现,Java虚拟机是不跟语言绑定的,也就是说不仅仅可以运行Java语言,可以运行许多种语言,比如Java,JRuby,Groovy等。其实Java虚拟机只是跟.Class文件(字节码文件)绑定。Class文件是一组以8字节为基础的二进制流。使用无符号数和表(由多个无符号数或者其他表作为数据项构造的复合数据类型)作为存储数据。Class文件中包括魔数,常量池,访问标志,方法表集合等组成(后期学完基础的Java知识之后再详细学习Class文件)。前面我们已经说过了,Java虚拟机向下要屏蔽掉不同操作系统的差异,并且可以一次编译到处运行,其实就是拿到一套.Class文件,然后到各个平台去运行,将.Class中的存储数据翻译(Java虚拟机中解释器与编译器其实是一起工作的,后期再深入研究)成与平台相关的机器码,这样就实现了我们通常所说的跨平台(也是Java语言的一次编译,到处运行)。

 

 

Java虚拟机是一切规范,承上启下,所以是大佬,Java虚拟机的构建复杂,再学完Java的基本知识之后,我们后期将重点研究,Java虚拟机是学好Java语言的必修课,是内功,一定要潜心钻研。“小贤,该你上台自我介绍了”,小李在旁边说。“啊,自我介绍,啥都没准备来,大家好,我是小贤,来自山东烟台…”


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值