转载:来自互联网
Java体系结构包括四个独立但相关的技术:
Java程序设计语言
Java class文件格式
Java应用编程接口(API)
Java虚拟机
用Java编程语言编写源代码,把它编译成Java class文件,然后再在Java虚拟机中运行class文件(图1.1)。
Java虚拟机和Java API一起组成了一个“平台”(从版本1.2开始,称为Java 2平台),所有Java程序都在这上面编译。
Java程序可以在不同的计算机上运行,这是因为Java平台自己可以用软件实现(图1.2)
Java虚拟机(简介)
Java虚拟机是一台抽象的计算机,是Java面向网络的核心,支持Java面向网络体系结构三大支柱的所有方面:平台无关性、安全性和网络移动性,其主要任务是装载class文件并且执行其中的字节码,Java虚拟机包含一个类装载器(class loader),它可以从程序和API中装载class文件,字节码由执行引擎来执行(图1.3)。
类装载器的体系结构:
Java虚拟机拥有灵活的类装载器体系结构,从而使Java应用程序得以用自定义的方式来实现类的装载,一个Java应用程序可以使用两种类装载器:“启动”(bootstrap)类装载器和用户定义的类装载器。
启动类装载器(系统中惟一的)是Java虚拟机实现的一部分,启动类装载器通常使用某种默认方式从本地磁盘中装载类,包括Java API的类(启动类装载器也被称为原始类装载器、系统类装载器或者默认类装载器)。
用户自定义的类装载器能够用Java编写,能够被编译为class文件,能够被虚拟机装载,还能够像其他对象一样实例化。他们实际上只是运行中的Java应用程序可执行代码的一部分(图1.5)。
由于Java虚拟机采取这种方式进行类的装载,所以被装载的类默认情况下只能看到被同一个类装载器装载的别的类。通过这种方法,Java的体系结构允许在一个Java应用程序中建立多个命名空间。运行时的Java程序中的每一个类装载器都有它自己的命名空间。一个Java应用程序能够从同一个类或者多个类中实例化多个用户定义的类装载器,因此,需要多少个(或多少种)用户自定义的类装载器,Java应用程序就可以创建多少个。被不同的类装载器装载的类存放在不同的命名空间中,它们不能互相访问,除非应用程序显式地允许这样做。当编写一个Java应用程序的时候,从不同源文件装载的类可以分隔在不同的命名空间中。通过这种方法,就能够使用Java类装载器的体系结构来控制任何从不同源文件中装载的代码之间的相互影响,特别是能够阻止恶意代码获取访问和破坏善意代码的权限。
执行引擎:
不同的Java虚拟机中,执行引擎可能实现得非常不同,在由软件实现的虚拟机中,最简单的执行引擎就是一次性解析字节码。另一种执行引擎更快,但是也更消耗内存,叫做"即时编译器"(just-in-time compiler),在这种情况下,第一次被执行的字节码会被编译成本地机械代码。编译出的本地机械代码会被缓存,当方法以后被调用的时候可以重用。第三种执行引擎是自适应优化器。在这种方法里,虚拟机开始的时候解析字节码,但是会监视运行中程序的活动,并且记录下使用最频繁的代码段。程序运行的时候,虚拟机只把那些活动最频繁的代码编译成本地代码,其他的代码由于使用得并不是很频繁,继续保留为字节码---由虚拟机继续解析他们。一个自适应的优化器可以使得Java虚拟机在80%~90%的时间里执行被优化过的本地代码,而只需要编译10%~20%对性能有影响的代码。最后一种虚拟机由硬件芯片构成,它用本地方法执行Java字节码,这种执行引擎实际上是内嵌在芯片里的。
Java class文件
Java class文件主要在平台无关性和网络移动性方面使Java更适应于网络。
它在平台无关性方面的任务是为Java程序提供独立于底层主机平台的二进制形式的服务。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作,而Java class文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件(Java编译器把Java源文件的指令编译成字节码,这种字节码就是Java虚拟机的“机械语言”)。
除了对于平台无关性的支持,Java class文件还在支持网络移动性的Java体系结构中担当了至关重要的角色。首先:class文件设计得紧凑,因此他们可以快速地在网络上传送;其次,由于Java程序是动态连接和动态扩展的,class文件可以在需要的时候才下载。这个特点使得Java应用程序能够安排从网络上下载class文件的时间,从而可以最大限度地减少终端用户的等待时间。
分享到:
相关推荐
Java体系结构,从基础到高级介绍整个Java体系。
在深入探讨Eclipse Web开发的Java体系结构、工具、框架及整合应用之前,我们首先要明白,Eclipse是一款广泛使用的开源集成开发环境(IDE),尤其在Java开发者社区中极为流行。它提供了丰富的功能,包括代码编辑、...
《精通Eclipse Web开发--Java体系结构、工具、框架及整合应用》这本书是为Java开发者提供的一本深度学习Eclipse IDE、Web开发技术以及相关工具和框架的指南。以下是本书涵盖的一些关键知识点: 1. **Java体系结构**...
JVM与Java体系结构
### Java体系结构介绍 #### 一、Java 是什么 Java是一种高级编程语言,它具有开放性、跨平台性、安全性及面向对象等特性。Java语言的设计借鉴了C和C++等面向对象语言的经验,但在语法上更为简洁。它可以运行在多种...
自己总结的jvm中jvm与java体系结构新特性的笔记,绘制了详细的思维导图,每个思维导图中均有详细的博文解释,方便大家学习和理解,免费分享给大家。适合jvm的爱好者和学习者
在Java体系结构中,类加载器是关键组件,它负责加载类到JVM中。类加载器分为Bootstrap ClassLoader、Extension ClassLoader和App ClassLoader,它们按照层次结构加载不同位置的类,确保了程序的正常运行。 内存模型...
精通Eclipse Web开发 Java体系结构、工具、框架及整合应用.rar
Java体系结构测试库是软件开发中的一个重要工具,它允许开发者定义和验证代码的架构规则,以确保代码质量、模块化和可维护性。这个特定的库专注于在纯Java环境中进行这些操作,这意味着它无需依赖于特定的构建工具或...
Java体系结构对信息安全的提供灵活而健壮框架,只要我们使用得当就能够很好的保证信息安全性,降低我们的代价和风险,同时我们也要加强一些其他相关的安全工作,比如保护好我们的私钥等等,这样才能保证Java安全框架...
Java体系结构包括三个主要部分:Java开发工具集(JDK)、Java运行时环境(JRE)和JVM。JDK是开发和调试Java应用程序的工具集合,包含JRE和额外的开发工具,如编译器(javac)和JVM调试工具。JRE则是运行Java应用程序...
【标题】"精通Eclipse,Web 开发-Java体系结构工具,框架及整合应用光盘"揭示了本书或光盘内容的核心,主要聚焦于使用Eclipse进行Web开发,以及Java在构建体系结构、工具和框架方面的应用。这涉及到Java开发中的多个...
JAVA体系结构很经典的 。。。。。。。。。。。。。。。。
Java体系结构主要包括Java SE(Java Standard Edition)、Java EE(Java Enterprise Edition)和Java ME(Java Micro Edition)三大部分。Java SE是标准版,定位在个人计算机上的应用;Java EE是企业版,定位在...
2022年,Java体系结构在信息安全支持方面依然扮演着至关重要的角色。以下将详细介绍Java如何保障信息的安全。 Java 体系结构的安全性主要体现在以下几个方面: 1. **Java 字节码和虚拟机**:Java 源代码被编译成...
《精通Eclipse Web开发:Java体系结构、工具、框架及整合应用 源代码(ch3-ch18)》是一部深入探讨Eclipse平台下Web应用程序开发的资源集合,涵盖了从基础到高级的诸多技术要点。本资源包含从第三章至第十八章的源代码...
在JVM与Java体系结构中,我们主要关注以下几个方面: 1. **JVM架构**:JVM分为多个组件,包括类加载器、运行时数据区、执行引擎、本地方法接口(JNI)和垃圾收集器(GC)。类加载器负责加载类文件,运行时数据区...
《Eclipse+Web开发:Java体系结构、工具、框架及整合应用》涵盖了广泛的Java开发知识,结合了Eclipse IDE的强大功能,以及Web开发中的关键技术和框架。本资源包含从第3章到第18章的源代码,为深入学习和实践提供了...
JAVA体系结构分析(ppt 68页)
这个是《精通Eclipse Web开发:Java体系结构、工具、框架及整合应用》这本书的源代码,因为文件大小问题,我把它分成了几份(考虑到很多朋友因为在分卷压缩文件时遇到很多问题,我分成多份压缩文件,每份都可单独...