Java体系结构

①Java体系结构包括四个独立但关联的技术:

1.Java程序设计语言

2.Java class文件格式

3.Java 应用编程接口(API)

4.Java虚拟机

关联:

1.编译时环境:用Java语言编写代码,由Java编译器编译成class文件.

2.运行时环境:Java虚拟机装载class文件并执行其中的字节码,并调用程序class文件依赖的Java Api class文件.

②Java虚拟机

字节码由执行引擎来执行(分三种)

1.最简单的执行引擎:一次性解释字节码

2.即时编译器(just-in-time compiler):第一次被执行的字节码会被编译成本地机器代码,并缓存,以后被调用时可重用

3.自适用优化器: 虚拟机开始的时候解释字节码,但会监视程序运行时的活动,并记录使用最频繁的代码,程序运行的时候,虚拟机只会把最频繁的代码编译成本地代码,其余代码继续保留为字节码.一个自适用优化器可以使的Java虚拟机在80%-90%的时间里执行被优化过的代码,而只需要编译10%-20%对性能有影响的代码

③类装载器的体系结构(分两种)

1.启动类装载器(也叫原始类装载器,系统类装载器,默认类装载器):

系统中唯一的,Java虚拟机实现的一部分,从本地磁盘中装载类,包括Java API的类

2.用户定义的类装载器

Java应用程序运行时安装,能够使用自定义的方式来装载类,例如从网络下载class文件,用户定义的类装载器能用Java编写,能被编译为class文件,能被虚拟机装载,还能像其他对象一样实例化,实际上只是运行中的Java应用程序可执行代码的一部分

通过允许实例化用户定义的类装载器知道如何从网络下载class文件,提供了对网络移动性的支持

通过允许使用不同的用户定义的类装载器装载不同来源的class文件(被不同的类装载器装载的类存放在不同的命名空间中,它们不能相互访问,除非应用程序显示的允许这么做),提供了对安全性的支持

④Java class文件

1,平台无关性:独立于底层主机平台的二进制形式的服务.是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件

2,网络移动性:class文件设计紧凑,可快速的在网络上传输,由于Java程序是动态连接和扩展的,class文件可以在需要的时候下载,这个特性使得Java应用程序能够安排从网络上下载class文件的时间,从而可以最大限度的减少终端用户等待时间.

⑤Java程序设计语言

优点:能够提高开发者效率(对直接内存操作的约束,自动垃圾收集,数组边界检查,对象引用的检查),使程序更健壮

缺点:执行速度较慢


你可能感兴趣的:(java虚拟机)