[java乱弹]--(1)我眼中的虚拟机

声明:
Author:赵志乾
Date:2018-9-1
Declaration:All Right Reserved!!!

我们经常说虚拟机在Java世界中尤为重要,其原因在于:虚拟机为java代码提供了运行环境。其实这种说法并不准确,因为在虚拟机的眼中只有字节码的存在(暂时不考虑本地方法调用)。确切的来说,虚拟机为字节码的运行提供了环境。

虽然虚拟机本身服务于字节码,但两者之间其实是相辅相成的。因为字节码指令集需要得到虚拟机的支持,而虚拟机的高效率执行又依赖于字节码指令集的良好设计。于是便诞生出了一整套虚拟机规范,其明确定义了字节码指令集和虚拟机应有的行为。

从拟人化的角度出发,虚拟机可以看做是一个有着高度自律性的仲裁者,其时刻在依据既定流程协调各对象间的协作,并管理着各对象的整个生命周期。在虚拟机中构建对象需要的原材料,便是由我们经常提及的“类”来提供,而各对象间的协作便是由常说的方法调用来描述。

类:为虚拟机构建对象提供了原材料。源于其向虚拟机提供了如下信息:

1、虚拟机需要在堆空间上开辟多大的内存空间,并按照何种规则完成所开辟出内存空间的布局,然后对布局后的内存空间如何进行初始化。这一系列的操作均有虚拟机封装在一条字节码指令的调用中(new)。

2、虚拟机为开辟出的内存空间标注类型,这一类型取决于构建对象时所使用的类。故虚拟机能够在运行时确定某段内存上存放对象的实际类型。

方法调用:为虚拟机提供各对象间的协作方式,也称作是对象间的消息传递。

综上所述:虚拟机是一个有着固定操作流程的系统,为代码的运行提供了一个骨架。作为软件开发人员的我们,需要向虚拟机提供两大类物件:构建对象的原材料(类)和各对象间的协作方式,以便虚拟机能够按照我们的意图协调各对象间的运作。当我们在大脑中想象程序的运行方式时,要时刻谨记有虚拟机这只无形的大手在拨弄着一切。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值