首页>学校动态>Java的运行

Java的运行

来源:天津IT培训学院时间:2021/1/8 17:44:25

  Java代码是怎么运行的?

  这个问题可以分三块来回答:

  为什么Java要在虚拟机里运行?

  Java虚拟机具体是怎样运行Java字节码的?

  Java虚拟机的运行效率究竟是怎么样的?

  Java之所以要在虚拟机中运行,是因为它提供了可移植性。一旦Java代码被编译为Java字节码,便可以在不同平台上的Java虚拟机实现上运行。此外,虚拟机还提供了一个代码托管的环境,代替我们处理部分冗长而且容易出错的事务,例如内存管理。


Java的运行


  Java虚拟机将运行时内存区域划分为五个部分,分别为方法区、堆、PC寄存器、Java方法栈和本地方法栈。Java程序编译而成的class文件,需要先加载至方法区中,方能在Java虚拟机中运行。

  为了提高运行效率,标准JDK中的HotSpot虚拟机采用的是一种混合执行的策略。首先,它会解释执行Java字节码,然后会将其中反复执行的热点代码,以方法为单位进行即时编译,翻译成机器码后直接运行在底层硬件之上。

  HotSpot装载了多个不同的即时编译器,以便在编译时间和生成代码的执行效率之间做取舍。

  Java虚拟机是如何加载Java类的?

  Java虚拟机将字节流转化为Java类的过程,可分为加载、链接以及初始化步骤。也可以用盖房子来类比Java虚拟机中的类加载。

  加载是指查找字节流,并且据此创建类的过程。以盖房子为例,村里的Tony要盖个房子,那么按照流程他得先找个建筑师,跟他说想要设计一个房型,比如说“一房、一厅、四卫”。

  这里的房型相当于类,而建筑师,就相当于类加载器。村里有许多建筑师,他们等级森严,但有着共同的祖师爷,叫启动类加载器(boot class loader)。

  加载需要借助类加载器,在Java虚拟机中,类加载器使用了双亲委派模型,即接收到加载请求时,会先将请求转发给父类加载器。

上一页 下一页

推荐课程更多>

立即申请体验课

关于我们 | 联系我们 | 天津IT培训学院

版权所有:培训指南

  • 在线咨询
  • 电话咨询
  • 预约试听